Verschieben von Verzeichnisinhalten samt Unterverzeichnissen
-
Hallo zusammen,
ich habe ein nettes kleines Snippet gefunden, welches ermöglicht, ganze Verzeichnisse mit Hilfe der Windows eigenen Funktionen zu verschieben:
int MoveFiles(AnsiString slSourceDir, AnsiString slTargetDir) { SHFILEOPSTRUCT sh; ZeroMemory(&sh, sizeof(sh)); sh.hwnd = NULL; sh.fFlags = FOF_NOCONFIRMATION | FOF_SILENT | FOF_FILESONLY; sh.wFunc = FO_MOVE; // Durchzuführende Operation slSourceDir+='\0'; // doppelte Nullterminierung erforderlich ! sh.pFrom = slSourceDir.c_str(); slTargetDir+='\0'; // doppelte Nullterminierung // erforderlich ! sh.pTo = slTargetDir.c_str(); sh.hNameMappings = NULL; sh.lpszProgressTitle = NULL; return SHFileOperation (&sh); }
Mit dieser Funktion schafft man es, z. B. das Verzeichnis C:\Temp nach D:\Temp zu verschieben/umzubenennen. Wie kann ich es aber anstellen, daß er z. B. alle Dateien des Verzeichnisse C:\Temp INCLUSIVE dessen Unterverzeichnisse in das bereits VORHANDENE Verzeichnis C:\Temsammlung verschiebt?
Die Beschreibung der Funktion sieht für einen solchen Fall den Aufruf
MoveFiles("C:\\Temp\\*.*","C:\\Tempsammlung")
vor, was jedoch (natürlich) nur alle Dateien OHNE Unterverzeichnisse verschiebt.
Gibt es jemanden, der mir hier helfen kann?
Mipe
-
Mipe schrieb:
ich habe ein nettes kleines Snippet gefunden ... Wie kann ich es aber anstellen, daß er z. B. alle Dateien des Verzeichnisse C:\Temp INCLUSIVE dessen Unterverzeichnisse in das bereits VORHANDENE Verzeichnis C:\Temsammlung verschiebt?
Hättste mal lieber das nette kleine Snippet aus unserer unserer FAQ benutzt (unter "Dateien+Verzeichnisse"), dann hättest du dir die Frage sparen können?