Einzelnen Beitrag anzeigen

MarcusB

Registriert seit: 7. Mär 2004
121 Beiträge
 
Delphi 7 Professional
 
#1

Problem beim Verzeichniskopieren

  Alt 10. Mai 2006, 15:17
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
  Mit Zitat antworten Zitat