Cómo copio una carpeta y todas las subcarpetas y archivos in.NET? [duplicado]
Posible Duplicado:
La mejor manera de copiar todo el contenido de un directorio en C #
Me gustaría copiar la carpeta con todas sus subcarpetas y el archivo de una ubicación a otra en .NET. ¿Cuál es la mejor manera de hacer esto?
Veo el método de Copia en la clase System.IO.File, pero me preguntaba si había una forma más fácil, mejor o más rápida que rastrear el árbol de directorios.
3 answers
Bueno, ahí está el VisualBasic.implementación dll que Steve hace referencia, y aquí hay algo que he utilizado.
private static void CopyDirectory(string sourcePath, string destPath)
{
if (!Directory.Exists(destPath))
{
Directory.CreateDirectory(destPath);
}
foreach (string file in Directory.GetFiles(sourcePath))
{
string dest = Path.Combine(destPath, Path.GetFileName(file));
File.Copy(file, dest);
}
foreach (string folder in Directory.GetDirectories(sourcePath))
{
string dest = Path.Combine(destPath, Path.GetFileName(folder));
CopyDirectory(folder, dest);
}
}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-07-01 00:42:10
Michal Talaga hace referencia a lo siguiente en su post :
- La explicación de Microsoft sobre por qué no debería haber un directorio.Operación Copy () en .NET.
- Una implementación de CopyDirectory() de Microsoft.VisualBasic.dll assembly.
Sin embargo, una implementación recursiva basada en File.Copy()
y Directory.CreateDirectory()
debería ser suficiente para las necesidades más básicas.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-12-30 01:31:26
Si no consigues nada mejor... tal vez usar Process.Start
para encender robocopy.exe
?
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-06-30 23:54:00