我正在使用应用程序,在应用程序的主文件夹中,我有一个包含网站列表的文本文件。
我操纵文件时遇到了一些麻烦。
我想使用应用程序在其中发送带有信息的文本文件,并在应用程序中为用户提供他可以更改内容的位置。保存并显示更改。
我的问题是:
我应该在哪里放置这样的文件?
从应用程序中获取它的最佳方法是什么?
为什么当我将文件放在我从Visual Studio运行应用程序时可以获得的文件夹中,但是当我重新启动应用程序并安装它时,应用程序无法找到该文件,我需要创建它(和丢失的数据)?
答案 0 :(得分:2)
找到正确位置的正确方法是使用Environment.GetFolderPath,然后传递SpecialFolder.LocalApplicationData
之类的内容。
但是,您需要查看SpecialFolder枚举的docs,因为用户数据位置有很多细微的变化。
您的安装程序工具可能具有查找相同“特殊位置”的功能,因此您可以希望文件可以在您期望的位置。当然,如果一个用户运行安装程序而另一个用户使用该应用程序,这可能无济于事,但在简单的情况下您可能没问题。
试图澄清:
这里有两个问题:
这两个都是由Windows定义的各种“特殊文件夹”解决的 - 你不应该关心这些文件的确切位置,但有些方法可以在需要时找到它们。
要解决问题“1”,您需要查看安装程序文档,并了解它如何处理特殊文件夹 - 几乎总有宏或某种类似的机制来将文件的目标设置为特殊文件夹。要解决问题'2',您需要使用Environment.GetFolderPath()。
答案 1 :(得分:0)
如果文件特定于单个用户,则应将其读/写到Application Data目录。
string folderPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
如果文件在所有用户之间共享,请使用共享应用程序数据目录:
string folderPath = Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData);