C# 保存程序状态并再次加载

C# 保存程序状态并再次加载,c#,C#,我正在windows框架上用c#制作视频转换器。 我想保存用户添加的加载文件&如果它退出应用程序,我想存储这些文件,并在它再次运行应用程序时加载。 怎么做??请告诉我如何执行此操作。使用设置api可能会有帮助: 您可以创建一个设置类,其中包含以前加载的文件列表,然后在退出时将其序列化到磁盘,并在开始时对其进行反序列化。您需要使用用户设置。在Visual Studio中打开项目属性,然后单击“设置”选项卡。通过输入设置名称,从组合框中选择类型System.Collections.Specializ

我正在windows框架上用c#制作视频转换器。 我想保存用户添加的加载文件&如果它退出应用程序,我想存储这些文件,并在它再次运行应用程序时加载。
怎么做??请告诉我如何执行此操作。

使用设置api可能会有帮助:

您可以创建一个设置类,其中包含以前加载的文件列表,然后在退出时将其序列化到磁盘,并在开始时对其进行反序列化。

您需要使用用户设置。在Visual Studio中打开项目属性,然后单击“设置”选项卡。通过输入设置名称,从组合框中选择类型
System.Collections.Specialized.StringCollection
,然后将其定义为用户范围设置,可以在此处添加类型为
System.Collections.Specialized.StringCollection
的新用户设置

如果您忘记将其设置为用户设置,而改为创建应用程序设置,则它将是只读的,您没有机会更改它。只能更改用户设置

这在代码中看起来就像一个普通的字符串列表。您可以将新值添加到like并按如下方式保存:

Properties.Settings.Default.[Setting name you chose].Add("My String");
Properties.Settings.Default.Save();
当然,您也可以循环访问以下条目:

foreach (string s in Properties.Settings.Default.[Setting name you chose])
    ....
其优点是,您不需要关心设置存储在何处以及如何存储。网络为你做了所有这些


背景:创建设置会将它们添加到
app.config
文件中。当您编译为
[exename].exe.config
时,此文件将被复制到输出目录中。当应用程序启动时,框架将从那里读取应用程序设置。用户设置将从那里读取,或者(如果您更改并保存了它们)从驻留在用户的应用程序数据目录中某处的副本读取


不要,我重复:不要尝试直接从代码修改
.exe.config
文件,但是,请始终使用我上面所述的自动生成的属性。

您是否可以对它的任何相关链接进行一点演示。框架的问题是,有时如果您更新应用程序,设置可能会丢失。但是你可以先试试内置的solution@ThomasHahn如果按设计使用内置应用程序设置,则不会有任何问题。哇,我不知道。Thanks通常建议不要使用可能重复的链接答案。请至少提供一个如何做的摘要。我通常发现字符串集合比帮助更麻烦,我没有实现IEnumerable,这意味着它不能直接与一些更有用的Linq扩展兼容,并在设置文件中造成相当多的膨胀。我只建议您在存储难以拆分的复杂字符串时使用它,否则只需使用stringYes,但出于OP的目的,它是完美的。他需要存储一个文件列表(我猜:文件名?)。也许他内部有一个文件列表,所以重新加载这些文件是一个简单的for循环。我怀疑在本例中,能够使用LINQ会比拆分包含所有文件名的字符串更痛苦。。。此外,虽然LINQ可能是一个很好的工具,但我们在5年前才能够在没有它的情况下编程。你仍然可以写循环,知道吗?但这是一个不同的讨论:-)至于臃肿的设置文件:谁在乎文件是1K还是2K,甚至是10K?