有时候需要,将一些数据覆盖的写入本地,然后分析问题。
.
.
.
.
fullPathWithName += extension;
if(File.Exists(fullPathWithName)) {
File.Delete(fullPathWithName);
File.Create(fullPathWithName);
}
为了保证每次文件的内容是最新的,所以先删除文件,当然也可以覆盖。代码如上,但是以上代码执行的时候会有以下报错
IOException: Sharing violation on path.......
办法:在文件流创建结束的时候Dispose()
.
.
.
.
fullPathWithName += extension;
if(File.Exists(fullPathWithName)) {
File.Delete(fullPathWithName);
File.Create(fullPathWithName).Dispose();
}
原因: File.Create 会创建一个 FileStream 。这个FileStream不会自动关闭,需要在你不需要的时候主动关闭。针对我的需求是创建文件完毕之后就可以关闭掉流了,所以Dispose就把流关闭掉。这个流所占用的内存即使在你重启应用程序都不会被回收,始终占用。
当然使用 Close来关闭也是可以的。
File.Create(fullPathWithName).Close();