Windows Vista en efecto, incluye un nuevo motor de copia que soporta exactamente lo que está buscando hacer. Sin embargo, es posible que la funcionalidad previamente existente pueda satisfacer sus necesidades. Por ejemplo, si desea copiar, mover, cambiar el nombre o eliminar un archivo o directorio individual, puede aprovechar SHFileOperation (expuesto desde shell32.dll), que ya está incluido en el tiempo de ejecución de Visual Basic®. Si está utilizando Visual Basic 2005, puede simplemente usar la funcionalidad del espacio de nombres My, por ejemplo:
My.Computer.FileSystem.CopyDirectory(
sourcePath, destinationPath, UIOption.AllDialogs)
lograr el mismo objetivo en C# implica sólo un poco más de trabajo, añadir una referencia a Microsoft.VisualBasic. DLL (desde el directorio de instalación de Microsoft® .NET Framework) y utilizando un código como el siguiente:
using Microsoft.VisualBasic.FileIO;
...
FileSystem.CopyDirectory(
sourcePath, destinationPath, UIOption.AllDialogs);
Cuando se ejecuta, esto se traducirá en la misma interfaz de usuario de los avances que verías si fueras a hacer las mismas operaciones de archivo desde el Explorador de Windows. De hecho, cuando se ejecuta en Windows Vista, obtiene automáticamente la nueva interfaz de usuario de Windows Vista, como se muestra en la Figura 1.
posible duplicado de [¿Cómo invoco el cuadro de diálogo de copia de archivo del shell? Para informar el progreso de una copia en Win32?] (http://stackoverflow.com/questions/5729808/how-do-i-invoke-the-shell-file-copy-dialog-to-report-the-progress-of-a- copia-en) –
mejor use 'xcopy' o' robocopy' en su lugar. Posible duplicado http://stackoverflow.com/q/3124038/380384 – ja72
No sé si el marco tiene soporte para esto, puede que tenga que p/invocar el [SHFileOperation()] (http://msdn.microsoft) .com/en-us/library/bb762164.aspx) función. –