gpt4 book ai didi

c# - 系统.UnauthorizedAccessException : Access to the path "..." is denied

转载 作者:太空狗 更新时间:2023-10-29 20:04:16 25 4
gpt4 key购买 nike

我使用单击一次安装完成了 .net 的 C# wpf 安装。一切正常。然后我有以下代码,它是已安装程序的一部分:

String destinationPath = System.Windows.Forms.Application.StartupPath + "\\" + fileName;
File.Copy(path, destinationPath, true);
this.DialogResult = true;
this.Close();

但是我得到这个错误:

System.UnauthorizedAccessException: Access to the path C:\user\pc\appdata\local\apps\2.0....... is denied.

at System.IO.File.InternalCopy(String sourceFileName, String destFileName, Boolean overwrite, Boolean checkHost) at System.IO.File.Copy(String sourceFileName, String destFileName, Boolean overwrite)

这是权限错误还是我需要调整我的代码?

令我困惑的是,为什么用户可以使用单击一次安装程序到该目录而没有任何问题,但上传文件到它却不起作用?

最佳答案

安装应用程序时,安装程​​序通常会询问管理权限。如果用户选择"is",程序将运行并具有比普通用户拥有的更多路径的读写权限。如果安装程序没有要求管理权限,则可能只是 ClickOnce 在某种提升的权限下自动运行。

我建议您改为写入本地 appdata 文件夹,但如果您真的想写入与您的应用程序完全相同的目录,则必须首先以管理员权限运行您的应用程序。

要使您的应用程序始终请求管理员权限,您可以修改应用程序的 list 文件并将 requestedExecutionLevel 标记的 level 属性设置为 requireAdministrator:

<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

您可以在 How do I force my .NET application to run as administrator? 中阅读更多内容

关于c# - 系统.UnauthorizedAccessException : Access to the path "..." is denied,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39534782/

25 4 0