在哪里保存项目相关的文本文件?

时间:2011-09-23 04:59:19

标签: c# .net visual-studio-2010 file path

出于测试和调试目的,我只是硬编码了我的应用程序将使用的文本文件的文件路径,例如

const string CONFIG_FILE_PATH = @"C:\myconfigfile.txt";

但我不认为将它保留在Beta / Release版本中是个好主意。

所以我想知道,保存这些将由应用程序使用/读取的配置文件的最佳位置是什么?有什么建议?

非常感谢。

4 个答案:

答案 0 :(得分:6)

为什么不在项目的“设置”部分保存字符串?在解决方案资源管理器中右键单击您的项目,选择“属性”,转到“设置”部分,然后使用文件路径添加新字符串。然后,在您的代码中,您可以像这样访问它:

using ProjectName.Properties;

var path = Settings.Default.MySetting;

更改设置:

Settings.Default.MySetting = newPath;
Settings.Default.Save();

答案 1 :(得分:0)

与可执行文件位于同一文件夹中。

但是你应该考虑使用一个Settings类(你可以阅读更多here)。 Visual Studio可以在app.config文件中的某个部分周围自动创建强类型包装器。 这些设置存储在与可执行文件相同的文件中,但可以在每个用户的用户配置文件中的匹配文件中覆盖(并从应用程序中保存)。

答案 2 :(得分:0)

另一个选项:如果测试配置文件与可执行文件并列,您可以将“现有项目...”添加到项目中,然后将其属性更改为“始终复制”或“如果更新则复制” ”。在调试期间,可执行文件应该能够在其当前工作目录中找到配置的副本。

当需要进行大量测试时,这不是一个有用的解决方案。

答案 3 :(得分:0)

对于设置,我当然会使用app.config文件。这是Microsoft提出的,除此之外,它几乎是处理应用程序设置的最简单方法。

对于其他文件,我建议使用应用程序本地或漫游设置路径,具体取决于天气,您只需要本地数据。对于紧凑的本地数据库,我倾向于使用这种方法。 Albin建议的应用程序目录是一个坏主意。您无法确定该用户是否实际上被允许写入该目录中的该目录和/或文件(即该应用程序是由具有提升权限的管理员预先安装的。)

要获取本地路径的位置,请使用

ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal)

和漫游路径

 ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoaming)

有关Windows用户配置文件的更多信息(例如,不同版本的Windows中的实际路径,您可以在此处找到:http://msdn.microsoft.com/en-us/library/aa372123.aspx