FileHelper.cs 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  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. public static List<string> GetSystemFilesFromFullPath(string directoryInfo, bool size = false)
  36. {
  37. List<string> SystemFiles = new List<string>();
  38. System.IO.FileSystemInfo info = new System.IO.DirectoryInfo(directoryInfo);
  39. scan(SystemFiles, info, size);
  40. return SystemFiles;
  41. }
  42. private static void scan(List<string> SystemFiles, System.IO.FileSystemInfo info, bool size)
  43. {
  44. if (!info.Exists) return;
  45. System.IO.DirectoryInfo dir = info as System.IO.DirectoryInfo;
  46. //不是目录
  47. if (dir == null) return;
  48. System.IO.FileSystemInfo[] files = dir.GetFileSystemInfos();
  49. for (int i = 0; i < files.Length; i++)
  50. {
  51. System.IO.FileInfo file = files[i] as System.IO.FileInfo;
  52. //是文件
  53. if (file != null)
  54. {
  55. if (size)
  56. {
  57. SystemFiles.Add(file.FullName + "|" + file.Length);
  58. }
  59. else
  60. {
  61. SystemFiles.Add(file.FullName);
  62. }
  63. }
  64. else scan(SystemFiles, files[i], size);
  65. }
  66. }
  67. }
  68. }