varios todos subcarpetas recorrer otro mover manipular los directorios directorio carpetas buscar archivos c# asp.net recursion

c# - todos - mover varios archivos en linux terminal



¿Cuál es la mejor forma de copiar recursivamente los contenidos en C#? (3)

Bueno, puedes intentar esto

DirectoryInfo sourcedinfo = new DirectoryInfo(@"E:/source"); DirectoryInfo destinfo = new DirectoryInfo(@"E:/destination"); copy.CopyAll(sourcedinfo, destinfo);

y este es el método que hace 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 sea de ayuda :)

¿Cuál es la mejor manera de copiar recursivamente el contenido de una carpeta en otra carpeta usando C # y ASP.NET?


Simplemente use Microsoft.VisualBasic.FileIO.FileSystem.CopyDirectory en Microsoft.VisualBasic.dll ensamblado Microsoft.VisualBasic.dll .

Agregue una referencia a Microsoft.VisualBasic

Microsoft.VisualBasic.FileIO.FileSystem.CopyDirectory(source, destination);


Puede usar SearchOption.AllDirectories para buscar recursivamente en las carpetas, solo necesita 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); }