我正在尝试写一个包含在我的安装程序中的空白文本文件,但是我收到以下错误;
System.UnauthorizedAccessException: Access to the path 'C:\Program Files (x86)\Hex Technologies\wamplocation.txt' is denied.
一旦通过我的安装程序安装文件,它似乎是文件的权限,但是如果文件安装完成后如何将文件设置为完全可修改?!这可以通过C#?!
完成EDITTED;
wamp_url = openFileDialog1.FileName.ToString();
String EnviromentPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
StreamWriter outfile = new StreamWriter(EnviromentPath + @"\Hex Technologies\wamplocation.txt");
outfile.Write(wamp_url);
outfile.Close();
答案 0 :(得分:7)
您不应将可修改数据文件存储在Program Files路径中。使用Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
或Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData)
Program Files \ ...路径受到Win7 +上普通用户的修改保护。试图规避这种保护是个坏主意。
答案 1 :(得分:2)
可能性是UAC正在阻碍你。
理想情况下,您的程序不应该写入此位置,此修改文件将在安装过程中进行修改,而在其他任何地方您都需要确保您正在升级。
如果要在运行时修改此文件,则应考虑将%appdata%用于用户数据,或将%programdata%用于程序数据而不是程序文件。