Переберите все файлы определенного расширения, избегая символических ссылок - PullRequest
0 голосов
/ 18 октября 2019

Я хочу получить список полного пути всех файлов, связанных с любым расширением списка расширений. Приведенный ниже фрагмент кода работает нормально, если я запускаю его на рабочем столе или в папке загрузки. Но в Documents это не удастся, потому что эта папка содержит несколько символических ссылок, и я получаю отказ в доступе, когда она пытается войти в эти «папки». Как я могу сказать своему коду просто игнорировать это исключение и продолжать цикл?

var extensions = new List<string> { ".doc", ".docx", ".xls" };
try
{
    string[] desktop = Directory.GetFiles(Environment.GetFolderPath(Environment.SpecialFolder.UserProfile) + "\\Documents", "*.*", SearchOption.AllDirectories)
                        .Where(f => extensions.IndexOf(Path.GetExtension(f)) >= 0).ToArray();
}
catch (UnauthorizedAccessException e)
{
    Console.WriteLine(e.Message);
}
...