我使用C#编写模块以保存软件的设置,但我发现如果原有设置文件更长,覆盖写入后的新设置文件的末尾总会带有之前的设置信息的尾部。
我可以想到使用一些策略可以避免这个尾部带来的影响,但如何避免文件写入时更长的原文件带来影响?
附代码

public void SaveToFile(string pathName)
{
try
{
using (var sw =new StreamWriter(
File.Open(
pathName,
FileMode.OpenOrCreate
)))
{
sw.Write(this.ToString());
XXXSystem.Log(this.ToString());//debug
}
}
catch (Exception ex)
{
XXXSystem.Log("储存设置文件时遇到错误:" + ex.ToString());
}
}

回答

找到解决方案了
https://blog.csdn.net/bruce135lee/article/details/79151215?utm_medium=distribute.pc_relevant_download.none-task-blog-BlogCommendFromBaidu-2.nonecase&depth_1-utm_source=distribute.pc_relevant_download.none-task-blog-BlogCommendFromBaidu-2.nonecas
使用原始流对象的SetLength方法可设置文件大小,SetLength(0)即可清空文件

    sw.BaseStream.SetLength(0);
    sw.Write(this.ToString());
    XXXSystem.Log(this.ToString());//debug

即可实现写全新的文件。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Scroll Up