![]() |
Kopieren mehrerer Verzeichnisse mit SHFileOperation
Hallo Delphi-Praxis Mitglieder ich treibe mich hier schon eine ganze weile im Forum herum und habe nun ein Problem bei dem ich irgendwie nicht auf die Lösung komme.
Ich bin ziemlicher Delphi-Neuling also nichts großartiges erwarten... Mein Problem: Ich schreibe ein Backup Programm (sehr einfach gehalten für einen älteren Herren) bei dem ich mehrere Verzeichnisse in ein Verzeichniss kopieren will. Kein Kompression oder ähnliches nötig. Ich benutze eine Funktion die ich im Internet gefunden habe
Delphi-Quellcode:
Ich rufe die Funktion so auf:
function CopyDir(const fromDir, toDir: string): Boolean;
var fos: TSHFileOpStruct; begin ZeroMemory(@fos, SizeOf(fos)); with fos do begin wFunc := FO_COPY; fFlags := FOF_FILESONLY; pFrom := PChar(fromDir + #0); pTo := PChar(toDir) end; Result := (0 = ShFileOperation(fos)); end;
Delphi-Quellcode:
Quelle und Ziel sind String Variablen.
if CopyDir(Quelle, Ziel + '\') = True then
MessageDlg('Daten gesichert!', mtInformation, [mbOK], 0); Geht aber nur mit einem Verzeichniss und so nützt mir das nicht viel. Ich habe das Programm so weit das man Verzeichniss auswählen kann, diese in einer Stringlist gespeichert werden und in einer Datei. Wie kann ich die einzelnen Verzeichnisse die in der StrinList stehen in einen einzelnen Ordner sichern? Ist vielleicht garnicht mal so schwer, aber ich komme nicht drauf :-( Danke schonmal im vorraus Matthias |
Re: Kopieren mehrerer Verzeichnisse mit SHFileOperation
du müsstest das ganze für jeden Eintrag in deiner Stringlist machen.
Dabei musst du aber folgendes bedenken: angenommen in deiner Stringlist befindet sich c:\ordner1\test c:\ordner2\test und du kopierst das ganze nach c:\ordner3 dann überschreibt das "Test"-Verzeichnis aus Ordner2 das gesicherte von Ordner1 |
Re: Kopieren mehrerer Verzeichnisse mit SHFileOperation
Hallo ging ja echt fix :-)
ja das habe ich mir gedacht das ich das für jeden Eintrag machen muss, nur wie da komme ich nicht drauf... Mit den Ordnern ist kein Problem da die Unterordner immer anders heißen. Grüsse Matthias |
Re: Kopieren mehrerer Verzeichnisse mit SHFileOperation
hmm, dann verstehe ich das problem nicht ganz, was ist dir bei dem ganzen unklar? Du hast eine Stringlist und weißt das du da alle items durchgehen musst. Die funktion um jeden Ordner einzeln zu kopieren hast du auch.
Bei was genau brauchst du da jetzt noch Hilfe? (ich hoffe das klingt nicht irgendwie böse) |
Re: Kopieren mehrerer Verzeichnisse mit SHFileOperation
Beim Kopieren von Dateien kannst du mehrere angeben, indem du sie durch #0 trennst. Darum endet der ganze String ja auch mit #0#0, weil das das Abschlusszeichen für die Funktion ist. Ich würde das gleiche mal mit Ordnern probieren.
|
Re: Kopieren mehrerer Verzeichnisse mit SHFileOperation
Ich habe es jetzt so gemacht und geht auch:
Delphi-Quellcode:
Vielen dank noch einmal für eure schnellen Antworten.
for index := 0 to Form3.strl_Quellen.Items.Count-1 do CopyDir(Form3.strl_Quellen.Items[index], Ziel);
Matthias |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:03 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz