¿Cuál es la mejor manera de copiar recursivamente el contenido de una carpeta en otra carpeta usando C# y ASP.NET?¿Cuál es la mejor manera de copiar recursivamente los contenidos en C#?
Respuesta
Bien puede probar esta
DirectoryInfo sourcedinfo = new DirectoryInfo(@"E:\source");
DirectoryInfo destinfo = new DirectoryInfo(@"E:\destination");
copy.CopyAll(sourcedinfo, destinfo);
y este es el método que haga todo el trabajo:
public void CopyAll(DirectoryInfo source, DirectoryInfo target)
{
try
{
//check if the target directory exists
if (Directory.Exists(target.FullName) == false)
{
Directory.CreateDirectory(target.FullName);
}
//copy all the files into the new directory
foreach (FileInfo fi in source.GetFiles())
{
fi.CopyTo(Path.Combine(target.ToString(), fi.Name), true);
}
//copy all the sub directories using recursion
foreach (DirectoryInfo diSourceDir in source.GetDirectories())
{
DirectoryInfo nextTargetDir = target.CreateSubdirectory(diSourceDir.Name);
CopyAll(diSourceDir, nextTargetDir);
}
//success here
}
catch (IOException ie)
{
//handle it here
}
}
espero que esto ayudará :)
sólo tiene que utilizar Microsoft.VisualBasic.FileIO.FileSystem.CopyDirectory
en Microsoft.VisualBasic.dll
montaje.
agregar una referencia a Microsoft.VisualBasic
Microsoft.VisualBasic.FileIO.FileSystem.CopyDirectory(source, destination);
suena útil. ¿cómo es que la clase Directory no tiene este método? –
Puede utilizar SearchOption.AllDirectories
para buscar de forma recursiva hasta carpetas, sólo tiene que crear los directorios antes de copiar ...
// string source, destination; - folder paths
int pathLen = source.Length + 1;
foreach (string dirPath in Directory.GetDirectories(source, "*", SearchOption.AllDirectories))
{
string subPath = dirPath.Substring(pathLen);
string newpath = Path.Combine(destination, subPath);
Directory.CreateDirectory(newpath);
}
foreach (string filePath in Directory.GetFiles(source, "*.*", SearchOption.AllDirectories))
{
string subPath = filePath.Substring(pathLen);
string newpath = Path.Combine(destination, subPath);
File.Copy(filePath, newpath);
}
¡genial! el único cambio que tuve que hacer es int pathLen = source.Length + 1 – nabeelfarid
Saludos, ajustes hechos :-) – Keith
- 1. ¿Cómo puedo copiar recursivamente los contenidos del directorio usando Perl?
- 2. ¿Cuál es la mejor manera de copiar una lista?
- 3. ¿Cuál es la mejor manera de escribir los contenidos de un StringIO en un archivo?
- 4. ¿Cuál es la mejor manera de guardar los contenidos de una ArrayList?
- 5. ¿Cuál es la mejor manera de copiar en profundidad un hash de hashes en Perl?
- 6. ¿Cuál es la mejor manera de escribir comentarios en C?
- 7. ¿Cuál es la mejor manera de copiar bases de datos completas en MS SQL Server?
- 8. ¿Cuál es la mejor manera de comunicarse entre los AppDomains?
- 9. ¿Cuál es la mejor manera de escribir código genérico de plantilla de clase en C?
- 10. ¿Cuál es la mejor manera de mostrar HTML en Flex?
- 11. ¿Cuál es la mejor manera de leer un archivo completo en std :: string en C++?
- 12. ¿Cuál es la mejor manera de dibujar en la consola?
- 13. ¿Cuál es la mejor manera de borrar todos los controles en un formulario C#?
- 14. ¿Cuál es la mejor manera de copiar una base de datos?
- 15. ¿Cuál es la mejor manera de implementar params en JavaScript?
- 16. ¿Cuál es la mejor manera de comparar programas en Windows?
- 17. ¿Cuál es la mejor manera de almacenar cadenas UTF-8 en memoria en C/C++?
- 18. ¿Cuál es la mejor manera de ir en el largo plazo: C, objetivo C o C++?
- 19. ¿Cuál es la mejor manera de validar datos en mongo?
- 20. Cuál es la mejor manera de paginar resultados en php
- 21. ¿Cuál es la mejor manera de manejar excepciones en Perl?
- 22. ¿Cuál es la mejor manera de integrarse con los libros rápidos del código C#?
- 23. ¿Cuál es la mejor manera de truncar el comienzo de un archivo en C?
- 24. Copiar archivos o directorios recursivamente en Python
- 25. ¿Cuál es la mejor manera de solucionar problemas de rendimiento?
- 26. ¿Cuál es la mejor manera de declarar una variable global?
- 27. ¿Cuál es la mejor manera de comenzar a utilizar MAPI?
- 28. ¿Cuál es la mejor manera de aprender WCF?
- 29. ¿Cuál es la mejor manera de integrar varios sistemas?
- 30. ¿Cuál es la mejor manera de hacer bucles en JavaScript
Gran código hay uno Lo que cambiaría: // compruebe si el directorio de destino existe if (Directory.Exists (target.FullName) == false) { Directory.CreateDirectory (targ et.FullName); } puede simplemente el objeto DirectoryInfo que ya tiene: if (! Target.Exists) { target.Create(); } – greektreat
Funcionó bien para mí sin cambios. –
unas pocas veces he tenido 'target.Exists' no funciona correctamente donde' Directory.Exists (target.FullName) 'lo hizo ... –