2012-03-12 42 views
0

我试图写它包含我的安装程序中一个空白的文本文件,但我发现了以下错误;UnauthorizedAccessException

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(); 
+1

Window's 7 ?,如果是这样,你应该写入ProgramData而不是Program Files – 2012-03-12 23:52:35

回答

7

您不应将可修改数据文件存储在Program Files路径中。使用Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData)

Program Files \ ...路径受到Win7 +上普通用户的修改保护。试图绕过这一保护措施是一个坏主意。

+0

谢谢,我收到了另一个错误,请参阅下面的注释,你能帮忙吗? – r0bb077 2012-03-13 00:25:35

2

的likleyhood是UAC是在您的方式获得。

理想的情况下你的程序不应该被写入到这个位置,它这个修改的文件是一个在安装过程进行修改和其他地方,你需要确保你正在运行升高。

如果要在运行时修改此文件,则应考虑将%appdata%用于用户数据或%programdata%用于程序数据而不是程序文件。

+0

谢谢,但现在我收到一个消息,指出“该文件正在由另一个进程使用”。我在上面插入了我的代码,以显示我的代码的样子! – r0bb077 2012-03-13 00:13:08

+0

应用程序数据中是否存在文件夹“Hex Technologies”? – 2012-03-13 00:25:31

+0

是的,我双重检查我送入StreamWriter的字符串,它的URL .txt文件相匹配。 – r0bb077 2012-03-13 00:30:34

相关问题