【发布时间】:2015-12-14 20:26:17
【问题描述】:
我希望能够扫描所有逻辑驱动器并获取所有 exe/dll 文件,以便在当前 Windows 机器上的所有程序集中输出所有 .net 类型/类,无论操作系统版本如何。我运行 WINDOWS 7,我有管理员权限(在代码中检查它),但仍然被拒绝访问 C:\Documents and Settings
我做错了什么?
bool aaa = AmIAdmin();
GetAllNet();
static Dictionary<string, object> GetAllNet()
{
List<string> binaries = new List<string>();
string[] drives = Directory.GetLogicalDrives();
foreach (string dir in drives)
{
binaries.AddRange(Directory.GetFiles(dir, "*.dll", SearchOption.AllDirectories));
binaries.AddRange(Directory.GetFiles(dir, "*.exe", SearchOption.AllDirectories));
}
return null;
}
static bool AmIAdmin()
{
return new WindowsPrincipal(WindowsIdentity.GetCurrent())
.IsInRole(WindowsBuiltInRole.Administrator);
}
【问题讨论】:
-
不完全是重复的,但这个文件夹(和其他几个)是 C# 看到的特殊文件夹。要了解如何联系他们,请参阅stackoverflow.com/questions/16752534/…
-
在这种情况下,他已经有了(可能是正确的)物理路径。
-
建议您发布最少的代码来重现该问题。让代码检查管理员权限(与您的程序相同),尝试读取有问题的文件夹。这样您就可以看到问题与这两件事无关,并且其他人可以重现该问题。
标签: c# file-permissions