我正在尝试遍历开始菜单上的项目,但我不断收到 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(以管理员身份执行)运行一些单元测试。