这是当我尝试将文件复制到某个位置时崩溃并给我这个错误的部分。
string startupDirectory = "C:\\Users\\Tyler\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup";
File.Copy(startupDirectory, "Startup.exe");
我已经在线阅读并尝试了管理员权限并创建了一个“app.manifest”文件:
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
<requestedExecutionLevel level="highestAvailable" uiAccess="false" />
我确认在设置中,应用程序 list 设置为这个文件,但它仍然给我同样的错误。
我也试过这个事件,虽然我认为它不会起作用,因为它是一个目录而不是一个文件:
File.SetAttributes(startupDirectory, FileAttributes.Normal);
这是 WinForms,我使用的是 Windows 7,但也希望它适用于 Windows 8+。我该怎么做?
提前致谢!
最佳答案
此异常由 Windows 错误触发。它没有专门的“这完全没有意义”的错误代码,它只是产生一个“访问被拒绝”的错误代码。哪个 .NET 转换为 UnauthorizedAccessException。
这里的“毫无意义”的问题是您正试图用文件复制方法复制一个目录。目录不是文件。复制目录需要先创建一个新目录,然后复制目录中的所有文件。 .NET 有一个方法,大多数 C# 程序员倾向于认为它是“错误的”命名空间。它是 Microsoft.VisualBasic.FileIO.FileSystem.CopyDirectory()。
但是这个问题你需要多考虑一下,将新目录命名为“startup.exe”当然是没有意义的。 A 可能意味着从启动目录复制一个特定文件,我们无法猜测它可能是什么。
关于c# - 错误 : An unhandled exception of type 'System.UnauthorizedAccessException' occurred in mscorlib. dll,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27555770/