c# – System.UnauthorizedAccessException:拒绝访问路径“…”

前端之家收集整理的这篇文章主要介绍了c# – System.UnauthorizedAccessException:拒绝访问路径“…”前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我使用.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,Boolean overwrite)

这是一个权限错误还是我需要在我的代码中调整一些东西?

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

解决方法

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

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

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

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

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

猜你在找的C#相关文章