GetDirectories() メソッドを呼び出すときに、ときどきエラーが発生するのは非常に奇妙です。
これは、IT 部門がいくつかのフォルダーをローカル マシンにリモートで移動したときに発生し始めました。このエラーは、C# を使用してこれらのフォルダーをナビゲートする場合にのみ発生します。
エラー メッセージ: 'パスへのアクセス 'C:\Users\XXXX\XXXXX が拒否されました'
コード:
public static string[] GetDirectoryInfo(string path)
{
if (Directory.Exists(path))
{
//This call is failing on the new folder.
return Directory.GetDirectories(path);
}
return new string[0];
}
それほど複雑ではありませんよね?
Windows エクスプローラーでナビゲートすると、フォルダーが存在しません。
CMD プロンプトで、ディレクトリをこのフォルダーに変更できます。DIR コマンドを実行すると、「ファイルが見つかりません」というエラーが表示されます。
問題は Win32 の問題であり、フォルダーが移動されたときに何かがクリーンアップされなかったと推測しています。逆コンパイルされた System.IO クラスを掘り下げることを除いて、問題を修正する方法がわかりません。解決策が得られない場合は、これを行います。