Игнорирование файлов, к которым нет доступа - C#

Узнай цену своей работы

Формулировка задачи:

public static IEnumerable<FileData> EnumerateAllFiles(DirectoryInfo directoryInfo, Random random)
{
            var listOfFiles = directoryInfo.GetFiles();
            var listOfDirectories = directoryInfo.GetDirectories();
            foreach (var file in listOfFiles)
                yield return new FileData { Size = file.Length, FileExtension = file.Extension };
            foreach (var dir in listOfDirectories)
                foreach (var inf in EnumerateAllFiles(dir, random))
                    yield return inf;
}
Есть сей код. Необходимо создать последовательность из данных о файлах (размер, расширение) в директории и ее поддиректориях. Проблема в том, что для доступа к некоторым файлам необходимы права. Как можно это обойти? Из условия задачи такие файлы можно просто пропустить.

Решение задачи: «Игнорирование файлов, к которым нет доступа»

textual
Листинг программы
        public static IEnumerable<FileInfo> EnumerateAllFiles(DirectoryInfo directoryInfo)
        {
            FileInfo[] listOfFiles;
            try
            {
                listOfFiles = directoryInfo.GetFiles();
            }
            catch (UnauthorizedAccessException)
            {
                yield break;
            }
            var listOfDirectories = directoryInfo.GetDirectories();
            foreach (var file in listOfFiles)
                yield return file;
            foreach (var dir in listOfDirectories)
                foreach (var inf in EnumerateAllFiles(dir))
                    yield return inf;
        }

ИИ для рефератов и докладов


  • Экспорт Word по ГОСТу
  • Минимум 80% уникальности текста
  • Поиск релевантных источников в интернете
  • Готовый документ за 2 минуты

Оцени полезность:

9   голосов , оценка 4.111 из 5
Похожие ответы