c# - 错误 : An unhandled exception of type 'System.UnauthorizedAccessException' occurred in mscorlib. dll

标签 c# winforms file copy windows-7-x64

这是当我尝试将文件复制到某个位置时崩溃并给我这个错误的部分。

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/

相关文章:

c# - 替换富文本框中的所有文本

c# - 如何将不同的图标/图像添加到 c# 中的 datagridview 行标题?

c# - OxyPlot - 删除 LinearAxis 的值并仅保留标题

performance - 加速 gz 文件上的 sed

C# XML 未正确验证 XmlReaderSettings 中的架构

c# - BitmapImage 在文件不存在时抛出初始化异常

c# - 自动完成扩展器在模式弹出扩展器内不起作用

javascript - 如何返回目录中的文件? (JavaScript、Node.js)

delphi - 如何在 Delphi 中解析复杂的文件格式? (不是 CSV、XML 等)

c# - 设置 AutoGenerateColumns=true 并按数据类型自动转换