![]() |
Inhalt eines Ordners kopieren?
So, ich habe jetzt wirklich lange gesucht und nichts gefunden.
Ich möchte den gesamten INHALT eines Ordners A (inkl. Dateien und Unterordnern) in einen anderen Ordner B kopieren, am besten mit ShFileOperation und womöglich mit mehreren Dateimasken aufeinmal. Alles, was ich darüber gefunden habe war, wie man eine eine einzelne Datei oder einen einzelnen Ordner kopiert, aber nicht den INHALT eines Ordners. Ich kann es nicht glauben, dass es dafür keinen einfachen Shell-Befehl geben soll! Muss ich wirklich jede einzelne Datei und jeden Unterordner im Quellordner abklappern und jede einzelne Datei und jeden Unterordner einzeln kopieren?? Mit dieser Funktion werden lediglich die DATEIEN im Wurzelverzeichnis des Quellordners kopiert, aber nicht die UNTERORDNER des Quellordners:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin CopyDir('F:\Quellordner\*', 'F:\Zielordner'); end; function TForm1.CopyDir(const fromDir, toDir: string): Boolean; var fos: TSHFileOpStruct; begin ZeroMemory(@fos, SizeOf(fos)); with fos do begin wFunc := FO_COPY; fFlags := FOF_FILESONLY or FOF_SIMPLEPROGRESS or FOF_MULTIDESTFILES; pFrom := PChar(fromDir + #0); pTo := PChar(toDir); end; Result := (0 = ShFileOperation(fos)); end; |
Re: Ordner-INHALT in einen anderen Ordner kopieren?
Zitat:
Was könnte das Flag FOF_FILESONLY bewirken? |
Re: Ordner-INHALT in einen anderen Ordner kopieren?
Zitat:
|
Re: Inhalt eines Ordners kopieren?
Ich habe die Löschung des Postings rückgängig gemacht, da ich mich wegen der Tomaten auf den Augen ruhig schämen soll! :wall: :wall: :wall:
Aber noch eine andere Frage: Ich habe bei ShFileOperation keine Möglichkeit gefunden, mehrere Dateimasken aufeinmal einzubinden. Bleibt mir dann nichts anderes übrig, als die die ganze Funktion für jede Dateimaske zu wiederholen? |
Re: Inhalt eines Ordners kopieren?
Mhmm, apropos Dateimasken, habe ich jetzt probiert und funktioniert nicht: Wenn ich die Funktion so aufrufe:
Delphi-Quellcode:
dann werden wieder nur die Dateien im Wurzelverzeichnis (und keine Unterordner) kopiert!
CopyDir('F:\Quellordner\*.lnk', 'F:\Zielordner');
Wie kann man also Wildcards einbinden? |
Re: Inhalt eines Ordners kopieren?
Zusätzliche Frage: Kann es sein, dass die Funktion ShFileOperation zurückkehrt, bevor die tatsächliche Arbeit abgeschlossen ist? Denn wenn ich es richtig verstanden habe, wird ja eine externe Shell-Funktion aufgerufen (angestoßen?) und möglicherweise nicht gewartet, bis diese beendet ist?
|
Re: Inhalt eines Ordners kopieren?
Zitat:
Und generell und auch für die andere Frage: Dir ist offenbar nicht klar, was die Flags eigentlich bedeuten. Das ist schlecht... Wie wäre es, wenn du (wenn du die Bedeutung des Flags nicht am Namen siehst) ![]() Zitat:
|
Re: Inhalt eines Ordners kopieren?
Zitat:
|
Re: Inhalt eines Ordners kopieren?
Wenn ich FOF_NO_UI (don't display any UI at all) verwende, gibt es offenbar kein Flag oder eine andere Möglichkeit, das Überschreiben von schreibgeschützten Dateien zu verhindern?
|
Re: Inhalt eines Ordners kopieren?
:warn: @TE: Unterlass bitte das
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:46 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