Hallo,
ich habe mal wieder ein Problem
Ich möchte mit einem kleinen Programm ein paar Verzeichnisse von meiner lokalen Festplatte auf eine USB-Festplatte kopieren.
Dazu verwende ich folgenden Code (vereinfacht, für bessere Übersicht):
Delphi-Quellcode:
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;
procedure TForm1.Button1Click(Sender: TObject);
var
BackupPfad: String;
bl: TStringList;
i: Integer;
begin
bl := TStringList.Create;
//Das folgende wird normalerweise aus einer Datei ausgelesen
bl.Add('C:\Daten\Verzeichnis_1');
bl.Add('C:\Daten\Verzeichnis_2');
bl.Add('C:\Daten\Verzeichnis_3');
bl.Add('C:\Daten\Verzeichnis_4');
BackupPfad := 'T:\Backup\'; //T: ist die USB-Festplatte
for i := 0 to bl.Count - 1 do
begin
CopyDir(bl[i], BackupPfad);
end;
end;
So, nun das Problem:
Er kopiert eigentlich alles richtig, bis auf den letzten Ordner, denn hier schmeisst er die Dateien die in diesem Ordner liegen einfach in das T:\Backup Verzeichnis, d.h. es sieht dann etwa so aus:
Delphi-Quellcode:
T:\Backup\Verzeichnis_1\
T:\Backup\Verzeichnis_2\
T:\Backup\Verzeichnis_3\
T:\Backup\datei1.xls //ist normalerweise im Verzeichnis_4
T:\Backup\datei2.xls //ist normalerweise im Verzeichnis_4
T:\Backup\UnterorderXY\ //ist normalerweise im Verzeichnis_4
T:\Backup\readme.txt //ist normalerweise im Verzeichnis_4
Wer kann mir sagen, wo ich da den Fehler gemacht habe?
Vielen Dank schonmal