1
我想迭代我的開始菜單上的項目,但我不斷收到UnauthorizedAccessException。我是目錄的所有者,我的用戶是管理員。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
}
}
的代碼,當它開始遍歷子目錄失敗。我還應該做什麼?我已經嘗試創建清單文件,但它不起作用。另一點(如果是相關的):我只是運行一些單元測試與視覺工作室(這是作爲管理員執行)。
使用擴展方法是解決異常的一個很好的解決方案。要獲得我的開始菜單上的「缺失」條目,我已經按照註冊表鍵「HKLM \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ Shell \ Folders \ Common Start Menu'.Thnx! – Fernando 2009-07-14 01:47:07