Как пропустить папки с несанкционированным доступом при создании списка fileinfo? [дубликат]
На этот вопрос уже есть ответ здесь:
- получение файлов рекурсивно: пропустить файлы / каталоги, которые не могут быть прочитаны? 3 ответа
- UnauthorizedAccessException не может разрешить каталог.Ошибка GetFiles [дубликат] 7 ответов
I имейте это для поиска файлов и списка в список .но когда речь заходит о папке, которая нуждается в авторизованном доступе, она останавливается. Как я могу заставить это пропустить эти папки и продолжить?
string[] filetypes = new string[] { "3gp", "avi", "dat", "mp4", "wmv",
"mov", "mpg", "flv", }
try
{
foreach (string ft in filetypes)
{
files.AddRange(dif.GetFiles(string.Format("*.{0}", ft),
SearchOption.AllDirectories));
}
}
catch
{
}
1 ответ:
static void GetFiles(string dir) { string[] filetypes = new string[] { "3gp", "avi", "dat", "mp4", "wmv", "mov", "mpg", "flv", } foreach(string ft in filetypes) { foreach (string file in Directory.GetFiles(dir, string.Format("*.{0}", ft), SearchOption.TopDirectoryOnly))) { files.Add(new FileInfo(file)); } } foreach (string subDir in Directory.GetDirectories(dir)) { try { GetFiles(subDir); } catch { } } }
Сделайте это с помощью рекурсии, а не
AllDirectories
Запустите его как
GetFiles(dif)