如何在c#中刷新()
本文关键字:刷新 | 更新日期: 2023-09-27 18:13:12
我正在向文件写入大量数据,这可能需要很长时间,所以我想在调用save()
函数时尽快将内容写入文件。当前文件大小(我从Windows资源管理器观察)保持在0字节大小,直到程序写入终止。
我都试过了:
fileOut = new StreamWriter(fileName);
fileOut.AutoFlush = true;
和
fileOut.Write(contents);
fileOut.Flush();
如何解决这个问题?
这是未关闭流的典型症状。用using语句包装你的资源使用,就像always一样。
冲洗并不像你想象的那样。它不会使数据对其他程序可见。它强迫它做磁盘。这不是你的问题。
磁盘上有什么并不重要。重要的是Windows文件缓存向其他程序呈现的内容。文件内容可以保存在内存中,并且仍然可以在应用程序之间同步。
元数据行为(长度,时间,…)在Windows上很奇怪。事实证明,枚举目录可能会返回过时的数据。直接查看文件(打开其属性窗口)应该始终返回准确的信息。
链接的Raymond Chen的文章有一个变通方法,你可以使用它来强制当前信息立即可见