Игнорирование файлов, к которым нет доступа - 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;
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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