スタート メニューの項目を繰り返し処理しようとしていますが、UnauthorizedAccessException が引き続き発生します。私はディレクトリの所有者であり、私のユーザーは管理者です。
これが私の方法です(それはdllプロジェクトにあります):
// root = C:\Users\Fernando\AppData\Roaming\Microsoft\Windows\Start Menu
private void walkDirectoryTree(DirectoryInfo root) {
try {
FileInfo[] files = root.GetFiles("*.*");
foreach (FileInfo file in files) {
records.Add(new Record {Path = file.FullName});
}
DirectoryInfo[] subDirectories = root.GetDirectories();
foreach (DirectoryInfo subDirectory in subDirectories) {
walkDirectoryTree(subDirectory);
}
} catch (UnauthorizedAccessException e) {
// do some logging stuff
throw; //for debugging
}
}
サブディレクトリの反復処理を開始すると、コードは失敗します。他に何をすべきですか?マニフェスト ファイルを作成しようとしましたが、うまくいきませんでした。別のポイント (関連する場合): Visual Studio (管理者として実行される) でいくつかの単体テストを実行しているだけです。