Привет всем В настоящее время я получил подкаталоги Я хотел через этот призыв:UnauthorizedAccessException с GetDirectories
foreach (DirectoryInfo dir in parent)
{
try
{
subDirectories = dir.GetDirectories().Where(d => d.Exists == true).ToArray();
}
catch(UnauthorizedAccessException e)
{
Console.WriteLine(e.Message);
}
foreach (DirectoryInfo subdir in subDirectories)
{
Console.WriteLine(subdir);
var temp = new List<DirectoryInfo>();
temp = subdir.GetDirectories("*", SearchOption.AllDirectories).Where(d => reg.IsMatch(d.Name)).Where((d => !d.FullName.EndsWith("TESTS"))).Where(d => !(d.GetDirectories().Length == 0 && d.GetFiles().Length == 0)).Where(d => d.GetFiles().Length > 3).ToList();
candidates.AddRange(temp);
}
}
foreach(DirectoryInfo dir in candidates)
{
Console.WriteLine(dir);
}
так что теперь мой вопрос заключается в том, что мой окончательный список называется кандидатов я ничего не получаю, потому что им становится проблема доступа из-за одного из папки с именем lost + найдены в моей папке подкаталогов в блоке try. Я попытался использовать try и catch для обработки исключения, поэтому я мог продолжать делать свои проверки. На самом деле я не забочусь об этой папке, и я пытаюсь просто игнорировать ее, но я не уверен, как обойти это без моего поиска. мысли? Я уже пробовал делать фильтр с. Где игнорировать любую папку, содержащую имя папки, но это не работает, либо просто остановило мою программу в имени папки.
Этот вопрос уже ответил, см следующее: [ссылка] (http://stackoverflow.com/questions/172544/ignore-folders-files-when- directory-getfiles-is-denied-access) –
Это для получения файлов, но мне нужны каталоги, а не файлы – JPhillips
Вы пытались использовать 'Directory.EnumerateDirectories()'? Это обеспечивает немного большую гибкость и позволяет вам, по крайней мере, получить имена каталогов по мере их нахождения. К сожалению, скрытые системные каталоги, такие как 'lost + found', вызовут' UnauthorizedAccessException'. Убедитесь, что вы используете по умолчанию 'SearchOption', поэтому поиск не пытается автоматически войти в какой-либо из дочерних каталогов. –