- class Program
- {
- //用递归回溯的方法将子目录一级级创建并拷贝当前文件夹中的所有文件
- static private void directoryCopy(string sourceDirectory, string targetDirectory)
- {
- if (!Directory.Exists(sourceDirectory) || !Directory.Exists(targetDirectory))
- {
- return;
- }
- DirectoryInfo sourceInfo = new DirectoryInfo(sourceDirectory);
- FileInfo[] fileInfo = sourceInfo.GetFiles();
- foreach (FileInfo fiTemp in fileInfo)
- {
- File.Copy(sourceDirectory + "//" + fiTemp.Name, targetDirectory + "//" + fiTemp.Name, true);
- }
- DirectoryInfo[] diInfo = sourceInfo.GetDirectories();
- foreach (DirectoryInfo diTemp in diInfo)
- {
- string sourcePath = diTemp.FullName;
- string targetPath = diTemp.FullName.Replace(sourceDirectory, targetDirectory);
- Directory.CreateDirectory(targetPath);
- directoryCopy(sourcePath, targetPath);
- }
- }
- public static void Main()
- {
- string sourcePath = @"C:/Users/TestFolder/SubDir";
- string targetPath = @"C:/Users/TestFolder";
- directoryCopy(sourcePath, targetPath);
- Console.WriteLine("Press any key to exit.");
- Console.ReadKey();
- }
- }