FileHelper.cs 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. using System;
  2. using System.Collections.Generic;
  3. using System.IO;
  4. using System.Linq;
  5. using System.Text;
  6. namespace Base
  7. {
  8. public static class FileHelper
  9. {
  10. public static void CleanDirectory(string dir)
  11. {
  12. foreach (string subdir in Directory.GetDirectories(dir))
  13. {
  14. Directory.Delete(subdir, true);
  15. }
  16. foreach (string subFile in Directory.GetFiles(dir))
  17. {
  18. File.Delete(subFile);
  19. }
  20. }
  21. public static void CopyDirectory(string srcDir, string tgtDir)
  22. {
  23. DirectoryInfo source = new DirectoryInfo(srcDir);
  24. DirectoryInfo target = new DirectoryInfo(tgtDir);
  25. if (target.FullName.StartsWith(source.FullName, StringComparison.CurrentCultureIgnoreCase))
  26. {
  27. throw new Exception("父目录不能拷贝到子目录!");
  28. }
  29. if (!source.Exists)
  30. {
  31. return;
  32. }
  33. if (!target.Exists)
  34. {
  35. target.Create();
  36. }
  37. FileInfo[] files = source.GetFiles();
  38. for (int i = 0; i < files.Length; i++)
  39. {
  40. File.Copy(files[i].FullName, target.FullName + @"\" + files[i].Name, true);
  41. }
  42. DirectoryInfo[] dirs = source.GetDirectories();
  43. for (int j = 0; j < dirs.Length; j++)
  44. {
  45. CopyDirectory(dirs[j].FullName, target.FullName + @"\" + dirs[j].Name);
  46. }
  47. }
  48. }
  49. }