FileHelper.cs 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. using System.IO.Compression;
  2. namespace Common
  3. {
  4. public class FileHelper
  5. {
  6. /// <summary>
  7. /// 解压zip文件
  8. /// </summary>
  9. /// <param name="zipPath">zip文件路径</param>
  10. /// <param name="extractPath">解压到的目标路径</param>
  11. /// <param name="overwrite">是否覆盖已存在的文件,默认覆盖</param>
  12. public static bool ExtractZip(string zipPath, string extractPath, bool overwrite = true)
  13. {
  14. try
  15. {
  16. zipPath = Function.getPath(zipPath);
  17. extractPath = Function.getPath(extractPath);
  18. ZipFile.ExtractToDirectory(zipPath, extractPath, overwrite);
  19. return true;
  20. }
  21. catch(Exception ex)
  22. {
  23. Utils.WriteLog(ex.ToString(), "FileHelper-ExtractZip");
  24. return false;
  25. }
  26. }
  27. public static List<string> GetSystemFiles(string directoryInfo, bool size = false)
  28. {
  29. List<string> SystemFiles = new List<string>();
  30. directoryInfo = Function.getPath(directoryInfo);
  31. System.IO.FileSystemInfo info = new System.IO.DirectoryInfo(directoryInfo);
  32. scan(SystemFiles, info, size);
  33. return SystemFiles;
  34. }
  35. private static void scan(List<string> SystemFiles, System.IO.FileSystemInfo info, bool size)
  36. {
  37. if (!info.Exists) return;
  38. System.IO.DirectoryInfo dir = info as System.IO.DirectoryInfo;
  39. //不是目录
  40. if (dir == null) return;
  41. System.IO.FileSystemInfo[] files = dir.GetFileSystemInfos();
  42. for (int i = 0; i < files.Length; i++)
  43. {
  44. System.IO.FileInfo file = files[i] as System.IO.FileInfo;
  45. //是文件
  46. if (file != null)
  47. {
  48. if (size)
  49. {
  50. SystemFiles.Add(file.FullName + "|" + file.Length);
  51. }
  52. else
  53. {
  54. SystemFiles.Add(file.FullName);
  55. }
  56. }
  57. else scan(SystemFiles, files[i], size);
  58. }
  59. }
  60. }
  61. }