Csharp/CSharp Tutorial/File Directory Stream/Directory Copy
Copy Directory
<source lang="csharp">using System; using System.IO; static class MainClass {
static void Main(string[] args) { DirectoryInfo sourceDir = new DirectoryInfo("c:\\a"); DirectoryInfo destinationDir = new DirectoryInfo("c:\\b"); CopyDirectory(sourceDir, destinationDir); } static void CopyDirectory(DirectoryInfo source, DirectoryInfo destination) { if (!destination.Exists) { destination.Create(); } // Copy all files. FileInfo[] files = source.GetFiles(); foreach (FileInfo file in files) { file.CopyTo(Path.rubine(destination.FullName, file.Name)); } // Process subdirectories. DirectoryInfo[] dirs = source.GetDirectories(); foreach (DirectoryInfo dir in dirs) { // Get destination directory. string destinationDir = Path.rubine(destination.FullName, dir.Name); // Call CopyDirectory() recursively. CopyDirectory(dir, new DirectoryInfo(destinationDir)); } }
}</source>