gpt4 book ai didi

c# - 在哪里存储自定义配置文件

转载 作者:行者123 更新时间:2023-11-30 17:21:34 25 4
gpt4 key购买 nike

我目前在应用程序目录中存储了一个序列化的 XML 文件,其中包含特定于程序操作(不是典型的系统或用户配置)的所有更改。几周前,我们开始遇到无法正确保存的问题(阅读 my previous question 关于此)。

长话短说,我们终于发现 Windows 7(有时是 Vista)在写入应用程序目录(特别是 Program Files 下的任何内容)时存在问题。现在,如果这是一个正常的配置文件,我会简单地将它存储在用户的 APPDATA 文件夹下,但它不正常。我们在自己的仪器上运行它,错误配置是客户在运行我们的软件时遇到问题的 99% 原因。所以我们需要这个文件可以访问,这样他们就可以很容易地找到它并将它通过电子邮件发送给我们。有经验的用户很难找到 Appdata,更不用说非技术人员了。

我们还尝试过以管理员身份运行它,并使文件夹权限完全开放(我们可以控制它运行的每台计算机;它永远不会在某个随机人的机器上运行)。但是,这些有时有效,有时无效。

最糟糕的是,当我写回文件时,它甚至没有抛出错误;它只是将它写入某个临时目录,该目录在某个未知的时间点过期。几周后,我们的用户会遇到问题,配置文件全乱了。

所以,我的问题是如果不在 Program Files 中,我应该将这个文件存储在哪里?我是否应该将它放在 APPDATA 中,并制作一个小实用程序,在出现问题时自动将其通过电子邮件发送给我们?或者我可以将它留在 Program Files 中,但更改一些特定的权限或注册表项以使其正常运行吗?

最佳答案

这取决于用户是否需要直接编辑文件。如果没有,您应该将它们放在 %APPDATA% 中,您可以通过以下方式访问:

Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)

否则,您可能会把它放在我的文档中:

Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)

无论哪种方式,将其放入程序文件都不是一个好主意。正如您所发现的,即使以管理员身份运行,也存在权限问题。

关于c# - 在哪里存储自定义配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3267960/

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