Поиск всех файлов/папок (включая вложенные) и обход тех, доступ к которым закрыт - 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;