.NET 4.x Глобальный поиск файла - C#

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

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

Всем доброго времени суток. Столкнулся с проблемой поиска файлов на компьютере при помощи

System.IO.DirectoryInfo.GetFiles()

;

При попытке осуществить поиск вываливается ошибка:

Отказано в доступе по пути "C:\Documents and Settings"

и это с учетом того что я обладаю правами админа, и доступ к этой папке у меня свободный.

Мой код:

Листинг программы
  1. using System;
  2. using System.IO;
  3. namespace testApp
  4. {
  5. internal class Program
  6. {
  7. private static void Main(string[] args)
  8. {
  9. string[] localDrivers = Directory.GetLogicalDrives();
  10.  
  11. foreach (string drive in localDrivers)
  12. {
  13. DirectoryInfo dirInfo = new DirectoryInfo(drive);
  14. FileInfo[] result = dirInfo.GetFiles("CSService.log", SearchOption.AllDirectories);
  15. foreach (var file in result)
  16. Console.WriteLine("найден" + file.FullName);
  17. }
  18. Console.WriteLine("Готово");
  19. Console.ReadKey();
  20. }
  21. }
  22. }

Решение задачи: «.NET 4.x Глобальный поиск файла»

textual
Листинг программы
  1. private static IEnumerable<string> SafeEnumerateFiles(string path, string searchPattern, SearchOption searchOption)
  2. {
  3.     Stack<string> dirs = new Stack<string>();
  4.     dirs.Push(path);
  5.  
  6.     while (dirs.Count > 0)
  7.     {
  8.         string currentDirPath = dirs.Pop();
  9.         if (searchOption == SearchOption.AllDirectories)
  10.         {
  11.             try
  12.             {
  13.                 string[] subDirs = Directory.GetDirectories(currentDirPath);
  14.                 foreach (string subDirPath in subDirs)
  15.                 {
  16.                     dirs.Push(subDirPath);
  17.                 }
  18.             }
  19.             catch (UnauthorizedAccessException)
  20.             {
  21.                 continue;
  22.             }
  23.             catch (DirectoryNotFoundException)
  24.             {
  25.                 continue;
  26.             }
  27.         }
  28.  
  29.         string[] files = null;
  30.         try
  31.         {
  32.             files = Directory.GetFiles(currentDirPath, searchPattern);
  33.         }
  34.         catch (UnauthorizedAccessException)
  35.         {
  36.             continue;
  37.         }
  38.         catch (DirectoryNotFoundException)
  39.         {
  40.             continue;
  41.         }
  42.  
  43.         foreach (string filePath in files)
  44.         {
  45.             yield return filePath;
  46.         }
  47.     }
  48. }

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


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

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

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

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

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

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