Mega Code Archive

 
Categories / C# / File Stream
 

Copy directories with DirectoryInfo

using System; using System.IO; class CopyDir {     public static void CopyAll(DirectoryInfo source, DirectoryInfo target)     {         if (source.FullName.ToLower() == target.FullName.ToLower())         {             return;         }         // Check if the target directory exists, if not, create it.         if (Directory.Exists(target.FullName) == false)         {             Directory.CreateDirectory(target.FullName);         }         // Copy each file into it's new directory.         foreach (FileInfo fi in source.GetFiles())         {             Console.WriteLine(@"Copying {0}\{1}", target.FullName, fi.Name);             fi.CopyTo(Path.Combine(target.ToString(), fi.Name), true);         }         // Copy each subdirectory using recursion.         foreach (DirectoryInfo diSourceSubDir in source.GetDirectories())         {             DirectoryInfo nextTargetSubDir =                 target.CreateSubdirectory(diSourceSubDir.Name);             CopyAll(diSourceSubDir, nextTargetSubDir);         }     }     public static void Main()     {         string sourceDirectory = @"c:\sourceDirectory";         string targetDirectory = @"c:\targetDirectory";         DirectoryInfo diSource = new DirectoryInfo(sourceDirectory);         DirectoryInfo diTarget = new DirectoryInfo(targetDirectory);         CopyAll(diSource, diTarget);     } }