AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Verzeichnis kopieren...

Ein Thema von Ares · begonnen am 24. Jan 2008 · letzter Beitrag vom 24. Jan 2008
Antwort Antwort
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
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.622 Beiträge
 
Delphi 12 Athens
 
#2

Re: Verzeichnis kopieren...

  Alt 24. Jan 2008, 11:42
Bist Du sicher, dass 2 Erfolg bedeutet? AFAIK ist das ERROR_PATH_NOT_FOUND, bin mir da aber nicht ganz sicher (kann auch gerade nicht nachsehen).
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Aurelius
Aurelius

Registriert seit: 29. Jan 2007
Ort: Erfurt
753 Beiträge
 
Delphi 7 Personal
 
#3

Re: Verzeichnis kopieren...

  Alt 24. Jan 2008, 11:46
Dazu gibts doch http://msdn2.microsoft.com/en-us/library/ms127957.aspx

Bist du dir sicher dass es den Ordner C:\test bei dir auch gibt?
Jonas
  Mit Zitat antworten Zitat
soulies

Registriert seit: 9. Dez 2005
234 Beiträge
 
#4

Re: Verzeichnis kopieren...

  Alt 24. Jan 2008, 11:48
hoi,

lass mal bei den pfadangaben den letzten backslash weg ...

dann funkst bei mir



cya
  Mit Zitat antworten Zitat
Ares

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

Re: Verzeichnis kopieren...

  Alt 24. Jan 2008, 12:47
Zitat von soulies:
lass mal bei den pfadangaben den letzten backslash weg ...
dann funkst bei mir
Besten Dank, jetzt klappt es bei mir auch. Allerdings werden die Unterordner nicht mit kopiert. Kann man SHFileOperation hierfür irgendwie erweitern? Oder muss ich jeden Ordner einzeln übergeben?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.622 Beiträge
 
Delphi 12 Athens
 
#6

Re: Verzeichnis kopieren...

  Alt 24. Jan 2008, 13:01
Schau Dir die Flags von SHFileOpStruct noch einmal genau an. Wenn ich das richtig verstanden habe, fehlt da noch ein FOF_MULTIDESTFILES.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Hawkeye219

Registriert seit: 18. Feb 2006
Ort: Stolberg
2.227 Beiträge
 
Delphi 2010 Professional
 
#7

Re: Verzeichnis kopieren...

  Alt 24. Jan 2008, 13:35
Hallo Ares,

das Problem könnte durch fehlende wildcards verursacht werden: klick

Gruß Hawkeye
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:47 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz