Поиск всех файлов/папок (включая вложенные) и обход тех, доступ к которым закрыт - C#
Формулировка задачи:
Нужна программа, реализующая поиск всех файлов, папок(включая вложенные) в заданной пользователем директории. Таких программ море в сети, сам уже многое нашел, но не могу справиться с парой моментов:
1) Не включать в поиск скрытые файлы и папки. Я же пока только смог избавиться от скрытых файлов, и не могу правильно реализовать то же самое с папками.
2) Избавиться от "Отказано в доступе". Нужно исключить из поиска те папки, к которым у меня нет доступа. Например я ищу в директории c:\Users\Public и мне нужно исключить папку "Мои видеозаписи"(c:\Users\Public\Documents\Мои видеозаписи) из поиска, к которой у меня и выскакивает это исключение.
Спасибо за помощь.
Вот то, что у меня есть:
class Program { static void DirSearch(string sDir) { try { foreach (string d in Directory.GetDirectories(sDir)) { Console.WriteLine(d); DirectoryInfo directory = new DirectoryInfo(d); FileInfo[] files = directory.GetFiles(); var filtered = files.Select(f => f) .Where(f => (f.Attributes & FileAttributes.Hidden) == 0); foreach (var f in filtered) { Console.WriteLine(f.FullName); } DirSearch(d); } } catch (System.Exception ) { } } static void Main(string[] args) { string path = @"c:\Users\Public"; DirSearch(path); Console.ReadLine(); } }
Решение задачи: «Поиск всех файлов/папок (включая вложенные) и обход тех, доступ к которым закрыт»
textual
Листинг программы
(directory.Attributes & FileAttributes.Hidden) != FileAttributes.Hidden;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д