0

我正在开发一个应用程序,在应用程序的主文件夹中,我有一个包含站点列表的文本文件。
我在处理文件时遇到了一些麻烦。

我想用应用程序发送带有他内部信息的文本文件,并在应用程序中为用户提供一个可以更改内容的地方。保存并显示更改。

我的问题是:

  1. 我应该把这样的文件放在哪里?

  2. 从应用程序中获取它的最佳方法是什么?

  3. 为什么当我将文件放在文件夹中时,当我从 Visual Studio 运行应用程序时可以获得,但是当我释放应用程序并安装它时,应用程序找不到文件,我需要创建它(并且丢失数据)?

4

2 回答 2

2

找到正确位置的正确方法是使用Environment.GetFolderPath然后传入类似SpecialFolder.LocalApplicationData.

不过,您需要查看 SpecialFolder 枚举的文档,因为用户数据位置有很多细微的变化。

您的安装程序工具可能具有查找相同“特殊位置”的功能,因此您可以希望该文件将位于您期望的位置。当然,如果一个用户运行安装程序而另一个用户使用该应用程序,这可能无济于事,但在简单的情况下你可能没问题。

尝试澄清

这里有两个问题:

  1. 安装程序应该把文件放在哪里?
  2. 当安装程序将文件放在那里时,我的应用程序将如何找到该文件?

这两个问题都可以通过 Windows 定义的各种“特殊文件夹”来解决——你不应该关心它们的确切位置,但是当你需要它们时,有办法找到它们。

要解决问题“1”,您需要查看安装程序文档,并了解它如何处理特殊文件夹 - 几乎总是有宏或一些类似的机制将文件的目标设置为特殊文件夹。要解决问题“2”,您需要使用 Environment.GetFolderPath()。

于 2012-10-19T14:29:43.250 回答
0

如果文件特定于单个用户,则应将其读/写到应用程序数据目录。

string folderPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);

如果文件在所有用户之间共享,请使用 Shared Application Data 目录:

string folderPath = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData);
于 2012-10-19T14:33:14.703 回答