Condividi tramite


Spostamento di directory

Per spostare una directory in un'altra posizione, insieme ai file e alle sottodirectory contenute, chiamare la funzione MoveFileEx, MoveFileWithProgress o MoveFileTransacted . La funzione MoveFileWithProgress ha la stessa funzionalità di MoveFileEx, ad eccezione del fatto che MoveFileWithProgress consente di specificare una routine di callback che riceve notifiche sullo stato di avanzamento dell'operazione. La funzione MoveFileTransacted consente di eseguire l'operazione come operazione transazionata.

Nell'esempio seguente viene illustrato l'uso della funzione MoveFileEx con una directory.

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