Thema: Delphi Verzeichnis kopieren...

Einzelnen Beitrag anzeigen

Ares

Registriert seit: 5. Dez 2002
269 Beiträge
 
#1

Verzeichnis kopieren...

  Alt 24. Jan 2008, 11:37
Hallo!

Wie kann ich mit Delphi ein komplettes Verzeichnis mit allen Dateien und Unterordnern in ein anderes Verzeichnis kopieren?

Ich habe es wie folgt versucht, dies hat aber nicht funktioniert:

Delphi-Quellcode:
  function CopyDirectory(SourceDirectory: string;
    DestinationDirectory: string): boolean;
  var
    SHFileOpStruct: TSHFileOpStruct;
    SourceBuffer, DestinationBuffer: array[0..255] of char;
    res: integer;
  begin
    try
      if not DirectoryExists(SourceDirectory) then
      begin
        Result := False;
        exit;
      end;
      Fillchar(SHFileOpStruct, sizeof(SHFileOpStruct), 0);
      FillChar(SourceBuffer, sizeof(SourceBuffer), 0);
      FillChar(DestinationBuffer, sizeof(DestinationBuffer), 0);
      StrPCopy(SourceBuffer, SourceDirectory);
      StrPCopy(DestinationBuffer, DestinationDirectory);
      with SHFileOpStruct do
      begin
        Wnd := 0;
        wFunc := FO_COPY;
        pFrom := @SourceBuffer;
        pTo := @DestinationBuffer;
        fFlags := FOF_ALLOWUNDO;
        hNameMappings := nil;
        lpszProgressTitle := nil;

        fFlags := fFlags or FOF_NOCONFIRMATION;
        fFlags := fFlags or FOF_SILENT;
        fFlags := fFlags or FOF_SIMPLEPROGRESS;
        fFlags := fFlags or FOF_NOCONFIRMMKDIR;

        end;
      res := SHFileOperation(SHFileOpStruct);
      Result := (res = 0);

      if not Result then
        ShowMessage(SysErrorMessage(GetLastError));
    except
      Result := False;
    end;
  end;
Der Aufruf von CopyDirectory('C:\test\', 'D:\Ziel\') liefert zwar das Ergebnis 2 = Vorgang erfolgreich ausgeführt, aber es werden keine Dateien order Order kopiert... Was mache ich falsch?

Gibt es ggf. einen einfacheren Weg einen Ordner von A nach B zu kopieren?

Das ganze soll ohne Fortschrittsbalken, etc. ablaufen.

Besten Dank
Ares
  Mit Zitat antworten Zitat