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;