我想将所有缓存的文件(特别是日志)刷新到硬盘驱动器。当我的软件出错时,我想拥有完整的日志文件并收集它们进行调试。
我正在使用WinRAR来收集它们。(您可以使用记事本打开缓存的文件但WinRar由于某种原因无法找到它们)但是当发生错误时我尝试rar所有调试有趣的文件,它无法收集仍然可以追加的最后一个日志文件。
我知道我可以将FlushFileBuffers
用于那个文件。但是,如果我有一些和其他文件和和?有没有其他方法来完成文件写入?如果花费太长时间并不重要。它是出现错误/紧急情况的。
修改
File.AppendText(...)
作为日志。另一个编辑:
解决方案:
-dh
(未经验证)答案 0 :(得分:1)
问题不是你需要冲洗。刷新是将缓存或缓冲数据推送到其真实存储位置的过程。在这种情况下磁盘。
但问题是该文件是以共享模式打开的,该模式阻止WinRAR将文件添加到存档中。因此,您的问题的解决方案是关闭文件,然后执行存档。
答案 1 :(得分:0)
我不知道您的文件操作的确切实现,但您可以从IDisposable
接口继承您的logwriters和其他“写入文件”内容。这将要求您实现Dispose
方法,每次对象破坏时都必须调用该方法。在Dispose
方法内部,您必须执行将数据刷新到文件所需的所有内容。