加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-15 08:28:27 所属栏目:百科 来源:网络整理
导读:我使用.net安装完成C#wpf安装.一切正常.然后我有以下代码,它是已安装程序的一部分: String destinationPath = System.Windows.Forms.Application.StartupPath + "" + fileName;File.Copy(path,destinationPath,true);this.DialogResult = true;this.Close
我使用.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:userpcappdatalocalapps2.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?中阅读更多内容

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读