.NET 4.x Глобальный поиск файла - C#
Формулировка задачи:
Всем доброго времени суток. Столкнулся с проблемой поиска файлов на компьютере при помощи
System.IO.DirectoryInfo.GetFiles()
; При попытке осуществить поиск вываливается ошибка:Отказано в доступе по пути "C:\Documents and Settings"
и это с учетом того что я обладаю правами админа, и доступ к этой папке у меня свободный.Мой код:
using System; using System.IO; namespace testApp { internal class Program { private static void Main(string[] args) { string[] localDrivers = Directory.GetLogicalDrives(); foreach (string drive in localDrivers) { DirectoryInfo dirInfo = new DirectoryInfo(drive); FileInfo[] result = dirInfo.GetFiles("CSService.log", SearchOption.AllDirectories); foreach (var file in result) Console.WriteLine("найден" + file.FullName); } Console.WriteLine("Готово"); Console.ReadKey(); } } }
Решение задачи: «.NET 4.x Глобальный поиск файла»
textual
Листинг программы
private static IEnumerable<string> SafeEnumerateFiles(string path, string searchPattern, SearchOption searchOption) { Stack<string> dirs = new Stack<string>(); dirs.Push(path); while (dirs.Count > 0) { string currentDirPath = dirs.Pop(); if (searchOption == SearchOption.AllDirectories) { try { string[] subDirs = Directory.GetDirectories(currentDirPath); foreach (string subDirPath in subDirs) { dirs.Push(subDirPath); } } catch (UnauthorizedAccessException) { continue; } catch (DirectoryNotFoundException) { continue; } } string[] files = null; try { files = Directory.GetFiles(currentDirPath, searchPattern); } catch (UnauthorizedAccessException) { continue; } catch (DirectoryNotFoundException) { continue; } foreach (string filePath in files) { yield return filePath; } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д