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