C# 尝试在C中写入文本文件时发生UnauthorizedAccessException#

C# 尝试在C中写入文本文件时发生UnauthorizedAccessException#,c#,streamwriter,C#,Streamwriter,我试图写一个空白的文本文件,这是包括在我的安装程序,但我得到以下错误 System.UnauthorizedAccessException: Access to the path 'C:\Program Files (x86)\Hex Technologies\wamplocation.txt' is denied. 这似乎是通过我的安装程序安装的文件的权限,但如何设置文件在安装后完全可修改?!这可以通过C#完成吗 编辑 wamp_url = openFileDialog

我试图写一个空白的文本文件,这是包括在我的安装程序,但我得到以下错误

System.UnauthorizedAccessException: Access to the path 'C:\Program Files (x86)\Hex Technologies\wamplocation.txt' is denied.
这似乎是通过我的安装程序安装的文件的权限,但如何设置文件在安装后完全可修改?!这可以通过C#完成吗

编辑

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

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


程序文件\。。。在Win7+上,路径受到保护,防止普通用户修改。试图绕过这种保护是一个坏主意。

可能是UAC在妨碍你

理想情况下,您的程序不应该写入此位置,如果在安装过程中修改此修改文件,则无需确保您正在运行


如果这个文件在运行时要修改,你应该考虑使用%AppDATA %用于用户数据或%StudioDeal%用于程序数据而不是程序文件。< /P>窗口7。如果是这样,你应该写程序数据而不是程序文件谢谢,但是现在我收到一条消息,说“文件正在被另一个进程使用”。我已经在上面插入了我的代码,以显示我的代码是什么样子的!应用程序数据中是否存在文件夹“Hex Technologies”?是的,我仔细检查了输入streamwriter的字符串,该字符串与.txt文件的url匹配。下载后,运行该文件夹以查找哪个进程运行了文件锁定,而txt文件却没有显示任何内容?!谢谢,我得到了另一个错误,请看下面我的评论,你能帮忙吗?