DirectoryInfo doesn’t have a method for recursive copying of files and subfoders from one root to another. The following code ads the CopyTo method to the DirectoryInfo class using the new C# 3.0 feature named code extensions.
public static class Extensions { public static void CopyTo(this DirectoryInfo source, DirectoryInfo target) { if (!Directory.Exists(target.FullName)) { Directory.CreateDirectory(target.FullName); } foreach (FileInfo fileInfo in source.GetFiles()) { fileInfo.CopyTo(Path.Combine(target.ToString(), fileInfo.Name), true); } foreach (DirectoryInfo sourceSubDir in source.GetDirectories()) { DirectoryInfo targetSubDir = target.CreateSubdirectory(sourceSubDir.Name); sourceSubDir.CopyTo(targetSubDir); } } }
Include this static class in your project and then you can use it like this:
DirectoryInfo info = new DirectoryInfo(@”C:\temp”);
info.CopyTo( new DirectoryInfo(@”C:\Copy of temp”));
Leave a comment