Поиск файлов по нескольким разделам - C#

Узнай цену своей работы

Формулировка задачи:

Помогите пожалуйста переделать код, чтобы поиск был по нескольким разделам с несколькими расширениями. Т.е. искало на диске A, B, C по расширению jpg, png, bmp, jpeg.
Листинг программы
  1. class Program
  2. {
  3. static void Main(string[] args)
  4. {
  5. IEnumerable<string> MyFiles = SafeEnumerateFiles(@"F:", "*.jpg", SearchOption.AllDirectories);
  6. foreach (string fileName in MyFiles)
  7. {
  8. Console.WriteLine(fileName);
  9.  
  10. }
  11. Console.ReadKey();
  12. }
  13.  
  14. private static IEnumerable<string> SafeEnumerateFiles(string path, string searchPattern, SearchOption searchOption)
  15. {
  16. Stack<string> dirs = new Stack<string>();
  17. dirs.Push(path);
  18. while (dirs.Count > 0)
  19. {
  20. string currentDirPath = dirs.Pop();
  21. if (searchOption == SearchOption.AllDirectories)
  22. {
  23. try
  24. {
  25. string[] subDirs = Directory.GetDirectories(currentDirPath);
  26. foreach (string subDirPath in subDirs)
  27. {
  28. dirs.Push(subDirPath);
  29. }
  30. }
  31. catch (UnauthorizedAccessException)
  32. {
  33. continue;
  34. }
  35. catch (DirectoryNotFoundException)
  36. {
  37. continue;
  38. }
  39. }
  40. string[] files = null;
  41. try
  42. {
  43. files = Directory.GetFiles(currentDirPath, searchPattern);
  44. }
  45. catch (UnauthorizedAccessException)
  46. {
  47. continue;
  48. }
  49. catch (DirectoryNotFoundException)
  50. {
  51. continue;
  52. }
  53. foreach (string filePath in files)
  54. {
  55. yield return filePath;
  56. }
  57. }
  58. }
  59. }

Решение задачи: «Поиск файлов по нескольким разделам»

textual
Листинг программы
  1. p.AddFile(fileName, "");

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.091 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут