みなさん、こんにちは、私は現在、この呼び出しで必要なサブディレクトリを取得しています:
foreach (DirectoryInfo dir in parent)
{
try
{
subDirectories = dir.GetDirectories().Where(d => d.Exists == true).ToArray();
}
catch(UnauthorizedAccessException e)
{
Console.WriteLine(e.Message);
}
foreach (DirectoryInfo subdir in subDirectories)
{
Console.WriteLine(subdir);
var temp = new List<DirectoryInfo>();
temp = subdir.GetDirectories("*", SearchOption.AllDirectories).Where(d => reg.IsMatch(d.Name)).Where((d => !d.FullName.EndsWith("TESTS"))).Where(d => !(d.GetDirectories().Length == 0 && d.GetFiles().Length == 0)).Where(d => d.GetFiles().Length > 3).ToList();
candidates.AddRange(temp);
}
}
foreach(DirectoryInfo dir in candidates)
{
Console.WriteLine(dir);
}
だから今私の問題は、tryブロックのサブディレクトリフォルダーにあるlost+foundというフォルダーの1つが原因でアクセスの問題が発生したため、候補者と呼ばれる最終リストが何も得られないことです。私はtryとcatchを使用して例外を処理しようとしましたが、チェックを続けることができました.考え?フォルダー名を含むフォルダーを無視するために.whereを使用してフィルターを実行しようとしましたが、フォルダー名でプログラムを停止しただけで機能しませんでした。