FileHelper.cs 1.5 KB

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