如何在c#中刷新()

本文关键字:刷新 | 更新日期: 2023-09-27 18:13:12

我正在向文件写入大量数据,这可能需要很长时间,所以我想在调用save()函数时尽快将内容写入文件。当前文件大小(我从Windows资源管理器观察)保持在0字节大小,直到程序写入终止。

我都试过了:

fileOut = new StreamWriter(fileName);
fileOut.AutoFlush = true;

fileOut.Write(contents);
fileOut.Flush();

如何解决这个问题?

如何在c#中刷新()

这是未关闭流的典型症状。用using语句包装你的资源使用,就像always一样。

冲洗并不像你想象的那样。它不会使数据对其他程序可见。它强迫它做磁盘。这不是你的问题。

磁盘上有什么并不重要。重要的是Windows文件缓存向其他程序呈现的内容。文件内容可以保存在内存中,并且仍然可以在应用程序之间同步。

元数据行为(长度,时间,…)在Windows上很奇怪。事实证明,枚举目录可能会返回过时的数据。直接查看文件(打开其属性窗口)应该始终返回准确的信息。

链接的Raymond Chen的文章有一个变通方法,你可以使用它来强制当前信息立即可见