Directory.GetFiles メソッドは、アクセス権のないフォルダーに最初に遭遇したときに失敗します。
メソッドは UnauthorizedAccessException (キャッチ可能) をスローしますが、これが行われるまでに、メソッドは既に失敗または終了しています。
私が使用しているコードを以下に示します。
try
{
// looks in stated directory and returns the path of all files found
getFiles = Directory.GetFiles(
@directoryToSearch,
filetype,
SearchOption.AllDirectories);
}
catch (UnauthorizedAccessException)
{
}
私の知る限り、特定のフォルダにアクセス権が定義されているかどうかを事前に確認する方法はありません。
私の例では、ネットワークを介してディスクを検索していて、ルート アクセスのみのフォルダーに出くわすと、プログラムが失敗します。