Freigeben über


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]);
}