FileHelper.cs 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  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)
  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);
  33. return SystemFiles;
  34. }
  35. private static void scan(List<string> SystemFiles, System.IO.FileSystemInfo info)
  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. SystemFiles.Add(file.FullName);
  49. }
  50. else scan(SystemFiles, files[i]);
  51. }
  52. }
  53. }
  54. }