gpt4 book ai didi

c# - 访问路径....被拒绝

转载 作者:太空狗 更新时间:2023-10-29 22:16:32 26 4
gpt4 key购买 nike

我使用 VS2008 安装项目创建了一个 .msi。我的应用程序经常在应用程序目录 (C:\Program Files\MyApp\MyFile.txt) 的 .txt 文件中写入一些值。在 Win7 中安装后,它引发异常“访问路径 .... 被拒绝。”

但每当我以管理员身份运行它时,都不会发生此类异常。这是我的 sscce

string FilePath=Application.StartupPath + @"\AppSettings\CurrentUserName.inf";
using (StreamWriter writer=new StreamWriter(FilePath,false))
{
writer.Write(txtLoginName.Text.Trim());
}
MainForm.ProcessLogIn();
this.DialogResult = DialogResult.OK;

我不知道如何解决这个问题。有什么建议吗?

最佳答案

将您的文件移出 Program Files 目录。在 Win7 中对普通用户是只读的。

您可以移动 ProgramData 目录中的文件。
您的安装程序应该在那里为您的应用程序创建一个目录。
然后在您的代码中,您可以使用这些代码行检索正确的完整路径名

string dataPath = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData));
string appFile = Path.Combine(dataPath, "MyAppDir", "MyFile.txt");

通常(在 Win7 上)这会导致这样的路径

c:\programdata\MyAppDir\MyFile.txt

但使用 SpecialFolder枚举你保证使用一个可读写的文件夹到你的应用程序,而不依赖于当前的操作系统。

关于c# - 访问路径....被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13934866/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com