C# 为下次程序运行更改文件位置

C# Change File Location For Next Time Program Runs

我对 C# 比较陌生,但是我确实通过高中和大学的课程了解了一些基本的代码知识。但是,多年来我一直无法弄清楚一件事。我目前正在为使用 Visual Studios 2010 将信息存储在列表中的数据库系统制作 Form Application

在我的主窗体上;当按下保存按钮时,信息会被序列化到一个 XML 文件中。加载信息后,再将信息反序列化,放入List中,供代码使用。 一切正常。

这个保存和加载过程是根据一个包含文件路径的字符串完成的。这个字符串是我桌面上一个文件夹的位置(我把它放在那里是为了易于访问),并且我能够更改代码中的字符串以基本上移动信息存储的位置。

但是,我有一个单独的 "Admin" 表单可以更改此文件路径字符串。当用户单击按钮更改文件路径时,我从文本框中获取输入,检查其格式,将当前文件移动到新位置并更新保存方法的位置,以便在程序运行之前保存更改关闭。从那里开始,程序的反应方式与我从代码内部更改字符串的方式相同。

关闭程序时出现问题。我不知道如何在程序再次 运行 时告诉程序该位置已从默认位置更改并在新位置查找文件。当程序在默认位置查找时,它的反应就像文件丢失一样(就像它应该的那样)。

所以基本上,我如何告诉程序保存位置已从上次更改运行以便它知道从新位置加载信息?

我从高中(大约 2 年前)就开始尝试寻找答案,但一直没有找到解决方案。因此,我通常只是将保存位置保留为默认位置(我将其设置为)并且不要尝试更改它。但这一次,重要的是可以自定义保存位置。我在 Visual Studios 方面的经验有限,因为我所知道的一切都是在需要时弄乱程序和查找资料。

如果需要,我可以 post 我的代码片段。 提前致谢!

我建议使用 .exe 所在的配置文件,并将位置写在那里,然后在程序启动时读取它。

特别是 .net 提供了这个 class,它可以为您管理您的配置文件(假设您的解决方案中有一个 app.config,否则创建一个)

https://msdn.microsoft.com/en-us/library/system.configuration.configurationmanager.appsettings(v=vs.110).aspx

看来您真正想要的是保存一些用户定义的设置以便在 运行 时调用。这是一个 MSDN link,描述了一些用于存储/检索这些设置的基本约定。

https://msdn.microsoft.com/en-us/library/bb397750(v=vs.110).aspx

一个 *.config 文件就足够了(取决于应用程序的规模)。

否则,您可能希望将这些设置存储在数据库中(如果规模相当大,或者应用程序需要用户身份验证)。

这是之前处理同一主题的另一个问题(关于 App.config 文件)What is App.config in C#.NET? How to use it?