Verschieben von Verzeichnissen
Um ein Verzeichnis zusammen mit den darin enthaltenen Dateien und Unterverzeichnissen an einen anderen Speicherort zu verschieben, rufen Sie die Funktion MoveFileEx, MoveFileWithProgress oder MoveFileTransacted auf . Die MoveFileWithProgress-Funktion verfügt über die gleiche Funktionalität wie MoveFileEx, mit der Ausnahme, dass Sie mit MoveFileWithProgress eine Rückrufroutine angeben können, die Benachrichtigungen über den Fortschritt des Vorgangs empfängt. Mit der MoveFileTransacted-Funktion können Sie den Vorgang als transaktionierten Vorgang ausführen.
Im folgenden Beispiel wird die Verwendung der MoveFileEx-Funktion mit einem Verzeichnis veranschaulicht.
#include <windows.h>
#include <tchar.h>
#include <stdio.h>
int __cdecl _tmain(int argc, TCHAR *argv[])
{
printf("\n");
if( argc != 3 )
{
printf("ERROR: Incorrect number of arguments\n\n");
printf("Description:\n");
printf(" Moves a directory and its contents\n\n");
printf("Usage:\n");
_tprintf(TEXT(" %s [source_dir] [target_dir]\n\n"), argv[0]);
printf(" The target directory cannot exist already.\n\n");
return;
}
// Move the source directory to the target directory location.
// The target directory must be on the same drive as the source.
// The target directory cannot already exist.
if (!MoveFileEx(argv[1], argv[2], MOVEFILE_WRITE_THROUGH))
{
printf ("MoveFileEx failed with error %d\n", GetLastError());
return;
}
else _tprintf(TEXT("%s has been moved to %s\n"), argv[1], argv[2]);
}