using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace CopyUSB; public class FileCopy { public static void Copy(string source,string des) { try { var sourceDir = new DirectoryInfo(source); var desDir = new DirectoryInfo(des); // 确保目标目录存在 if (!desDir.Exists) { desDir.Create(); } //遍历目录 foreach (var subDir in sourceDir.GetDirectories()) { Copy(subDir.FullName, Path.Combine(desDir.FullName, subDir.Name)); } foreach (var file in sourceDir.GetFiles()) { string destinationFile = Path.Combine(desDir.FullName, file.Name); if (File.Exists(destinationFile)) { var desFileInfo = new FileInfo(destinationFile); if (desFileInfo.Length != file.Length) { Console.WriteLine($"Renew {file} --> {destinationFile}"); file.CopyTo(destinationFile, true); } else { Console.WriteLine($"Same {file} --> {destinationFile}"); } } else { Console.WriteLine($"NewFile {file} --> {destinationFile}"); file.CopyTo(destinationFile, true); } } } catch (Exception ex) { Console.WriteLine($"{source} Copy Error"); /*Console.WriteLine(ex.ToString());*/ } } }