系统.UnauthorizedAccessException(第一次机会异常)

本文关键字:异常 机会 第一次 UnauthorizedAccessException 系统 | 更新日期: 2023-09-27 18:19:00

我得到

类型为'System '的第一次异常。UnauthorizedAccessException"发生在mscorlib.dll

异常:

string[] filesList = Directory.GetFiles(@"C:'Program Files (x86)'", "*.exe",
                                         SearchOption.AllDirectories);

它所做的是列出所有扩展名为.exe的文件,尽管对于某些目录它有效,但有些目录会抛出这个。

关于我能做些什么来解决它的任何想法将是非常感激的!

系统.UnauthorizedAccessException(第一次机会异常)

您需要以admin身份运行应用程序。

正确的做法是:

http://blogs.msdn.com/b/nikhiln/archive/2007/04/19/embed-a-manifest-to-make-an-application-elevate-in-vista.aspx

在某些版本的windows上,程序文件目录被很好地锁定了。这可以防止错误的用户破坏文件系统中正确运行操作系统所必需的部分。如果您以提升的权限运行调试器(和应用程序),那么它将通过。

如果您使用的是Vista, Program Files文件夹受操作系统UAC保护。

假定用户正在运行的应用程序具有管理员权限的用户在早期版本中遇到问题当从有限的用户帐户运行Windows时,通常是因为它们试图写入机器范围或系统目录(例如程序文件)或注册表项。UAC试图缓解这个问题使用文件和注册表虚拟化,重定向写(和) 例如,如果一个应用程序试图写入 " C:'program . C文件'appname'settings.ini " ,用户没有权限写入到那个目录,写入将被重定向到"C: ' '用户名' AppData '本地用户' VirtualStore '程序文件'浏览器名称' settings.ini "

注意,Program Files是特殊文件夹。如果想要得到它的路径,可以使用Environment.SpecialFolder枚举。

;
Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles)