FileNameCapturer.cs 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. /// <summary>
  2. /// Copyright (c) 2021 MirzkisD1Ex0 All rights reserved.
  3. /// Code Version 1.0
  4. /// </summary>
  5. using System.IO;
  6. namespace ToneTuneToolkit.Common
  7. {
  8. /// <summary>
  9. /// 获取某个目录下指定类型的文件名
  10. /// </summary>
  11. public class FileNameCapturer
  12. {
  13. /// <summary>
  14. /// 获取路径下全部指定类型的文件名
  15. /// </summary>
  16. /// <param name="path">路径</param>
  17. /// <param name="suffix">后缀名</param>
  18. /// <param name="files">用以存储文件名的数组</param>
  19. public static string[] GetFileName(string path, string suffix)
  20. {
  21. if (!Directory.Exists(path)) // 如果路径不存在 // 返回 空
  22. {
  23. TipTools.Error("[FileNameCapturer] Cant find [" + path + "].");
  24. return null;
  25. }
  26. DirectoryInfo directoryInfo = new DirectoryInfo(path); // 获取文件信息
  27. FileInfo[] fileInfos = directoryInfo.GetFiles("*", SearchOption.AllDirectories);
  28. // 统计有多少符合条件的文件
  29. int arraySize = 0;
  30. for (int i = 0; i < fileInfos.Length; i++)
  31. {
  32. if (fileInfos[i].Name.EndsWith(suffix))
  33. {
  34. arraySize++;
  35. continue;
  36. }
  37. }
  38. string[] filesArray = new string[arraySize]; // 新建数组
  39. // 筛选符合条件的文件并储名进数组
  40. int arrayIndex = 0;
  41. for (int i = 0; i < fileInfos.Length; i++)
  42. {
  43. if (fileInfos[i].Name.EndsWith(suffix))
  44. {
  45. filesArray[arrayIndex++] = fileInfos[i].Name; // 把符合要求的文件名存储至数组中
  46. continue;
  47. }
  48. }
  49. return filesArray;
  50. }
  51. }
  52. }