Guest User

Untitled

a guest
Jun 22nd, 2018
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.79 KB | None | 0 0
  1. //*****************************************************************************
  2. // Вспомогательный класс, дополняющий DirectoryInfo(инфу каталога...)
  3. // методом GetAllFiles который выдаёт спикок FileInfo
  4. // тобишь информацию о всех файлах в каталоге.
  5. //
  6. // Использовать примерно так:
  7. // using System.IO;
  8. // using Progolab.Extentions;
  9. // DirectoryInfo di = new DirectoryInfo("C:\\SomeDirectory\\");
  10. // List<FileInfo> all_files = di.GetAllFiles();
  11. // foreach (FileInfo fi in all_files)
  12. // {
  13. // Console.WriteLine(fi.FullName);
  14. // }
  15. //
  16. // PS: Финчи шарпа 3.0, чтоб использовать нужен Framework 3.0+
  17. // PPS: Have fun =)
  18. // PPPS: CollectFiles написанна на земном C# 1.0 =)...
  19. //*****************************************************************************
  20. namespace Progolab.Extentions
  21. {
  22. using System;
  23. using System.Collections.Generic;
  24. using System.Linq;
  25. using System.IO;
  26. public static class DirectoryInfoExtention
  27. {
  28. /// <summary>
  29. /// Список ВСЕХ файлов в пределах директории
  30. /// </summary>
  31. /// <param name="dir">Указатель на директорию в которой ищем</param>
  32. /// <returns>Список ВСЕХ файлов в пределах директории</returns>
  33. public static List<FileInfo> GetAllFiles(this DirectoryInfo dir)
  34. {
  35. //Готовим список
  36. List<FileInfo> fileList = new List<FileInfo>();
  37. //Вызов хитрой вспомогательной функции
  38. CollectFiles(dir.FullName, fileList);
  39. //Что собрали то и выплёвываем
  40. return fileList;
  41. }
  42. /// <summary>
  43. /// Собираем все файлы в текущей директории
  44. /// </summary>
  45. /// <param name="curr_path">Каталог в котором ищем</param>
  46. /// <param name="fileList">Список в который всё собираем</param>
  47. static void CollectFiles(string curr_path, List<FileInfo> fileList)
  48. {
  49. //Рекурсивно "падаем" в каждую из директорий текущего каталога
  50. foreach (string dir_name in Directory.GetDirectories(curr_path))
  51. CollectFiles(dir_name + "\\", fileList);
  52. //Собираем все файлы в текущем каталоге
  53. foreach (string file_name in Directory.GetFiles(curr_path))
  54. fileList.Add(new FileInfo(file_name));
  55. }
  56. }
  57. }
Add Comment
Please, Sign In to add comment