2012-10-19 120 views
0

我正在研究一个应用程序,并且在应用程序的主文件夹中,我有一个包含网站列表的文本文件。
我在操作文件时遇到了一些麻烦。把txt文件放在哪里

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

我qustions是:

  1. 我应该在哪里放置一个这样的文件?

  2. 从申请中得到它的最佳方式是什么?

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

+0

你瞄准什么平台? – BryanJ

+0

基本上写一个应用程序来读/写一个文本文件,并与安装程序一起发货? – lboshuizen

+0

@BryanJ xp/windows 7 – samy

回答

2

找到正确的位置,正确的方法是使用Environment.GetFolderPath,然后在一些传似SpecialFolder.LocalApplicationData

但是,您需要查看特殊文件夹枚举的docs,因为用户数据位置有很多细微的变化。

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

要尝试和澄清

有两个问题在这里:

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

这些都是通过Windows定义各种“特殊文件夹”来解决的 - 你不应该关心它们到底在哪里,但是当你需要它们的时候有办法找到它们。

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

+0

但我应该在哪里放置文件?在所有课程的主目录中? – samy

+0

Environment.GetFolderPath会给你一个目录名 - 这是你应该放置文件的地方。 –

+0

但即时创建文件手动并向其添加数据。我想知道是否有可能与该应用程序的文件。 – samy

0

如果该文件是特定于单个用户的,则应读/写它到Application Data目录。

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

如果文件是所有用户共享,使用共享应用程序数据目录:

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