如何将文件复制到C:\ Program Files(x86)\

时间:2019-03-29 17:56:49

标签: c#

我可以将文件复制到C:\Program Files (x86)\... ...,但只能使用管理员帐户。

此文件是App.Config之类的配置文件,但是名称不同,我想将其放入应用程序路径的子文件夹中。

情况如下。

  1. 将初始配置文件放入\ Cfg \ org.cfg

  2. 启动应用程序myApp.exe时,请检查应用程序路径中是否存在配置文件。

  3. 如果不存在,请将org.cfg复制到myApp.exe.config并加载它。

我尝试使用DirectoryInfo.SetAccessControl(),但也会发生以下错误。

“尝试执行未经授权的操作”

1 个答案:

答案 0 :(得分:2)

Program Files (x86)需要写入的管理权限。更改权限也是如此,这就是SetAccessControl失败的原因。真的没有办法解决。如果您希望配置文件可被应用程序写入,那么当您具有管理访问权限时,可以考虑在程序安装期间更改配置文件的权限。

但是,我建议您将配置文件放置在用户个人资料的某个位置,默认情况下,所有用户均可写入该文件,例如%LOCALAPPDATA%

您也可以从任意位置加载配置文件,它不必位于可执行文件旁边的.config文件中。有关示例,请查看this question