我正在使用ini文件将我的配置存储在我的c#gui中。 但是当我再次启动我的gui并保存配置时,之前保存的配置会被覆盖。 有没有办法继续保存配置?
答案 0 :(得分:1)
您想使用app.config
文件而不是.ini。您可以使用ConfigurationManager
命名空间中的System.Configuration
访问其中的设置。您甚至可以通过创建从ConfigurationSection
继承的类来创建自定义配置节。这也将为您提供对配置文件的智能支持。
其中一个例子(它使用的是asp.net,但适用于任何.net代码)是here。
修改:重新阅读您的问题,我不清楚您是否尝试保存应用程序设置(app.config
),或者您是否尝试保存会话数据到磁盘(保存记录或序列化对象)。如果是前者,请查看app.config
。您甚至可以有多个项目设置相同的“设置”但具有不同的值(例如具有多个SQL连接字符串),然后通过您从用户获得的某个参数调用它们。
如果您正在尝试保存会话数据/状态,那么您希望序列化您的对象 - 查看序列化/反序列化(许多可用选项)和System.IO命名空间以保持磁盘。
答案 1 :(得分:0)
防止每次覆盖同一文件的唯一方法是使文件名称唯一,例如。
FileName<TimeStamp>.ini
或者
FileName<Guid>.ini
或者您甚至可以使用重复文件执行Windows所做的操作,并检查已存在的文件数量,并在最后附加一个新数字,例如。
FileName.ini
FileName1.ini
FileName2.ini
我个人会选择时间戳/ GUID方法。这是一些示例代码
class Program
{
static void Main()
{
for (int i = 0; i <= 10; i++)
{
SaveConfiguration();
Thread.Sleep(500);
}
}
private static void SaveConfiguration()
{
string fileName = System.IO.Path.Combine(@"Config\File\Dir", String.Format("Config{0:yyyyMMddHHmmss}.ini", DateTime.UtcNow));
System.IO.File.WriteAllText(fileName, "File contents");
}
}