gpt4 book ai didi

windows - 刷新磁盘写缓存

转载 作者:可可西里 更新时间:2023-11-01 13:27:57 25 4
gpt4 key购买 nike

当Windows XP和Vista中的磁盘策略设置为在硬盘上启用写缓存时,有没有办法刷新刚刚写入的文件,并确保它已经提交到磁盘?

我想在 C++ 中以编程方式执行此操作。

关闭文件确实会在应用程序级别执行刷新,但不会在操作系统级别执行。如果关闭文件后 PC 断电,但在操作系统刷新磁盘写入缓存之前,即使文件已关闭,文件也会丢失。

最佳答案

.NET FileStream.Flush() 不会刷新该文件内容的 Windows 缓存; Flush() 仅刷新 .NET 内部文件缓冲区。在 .NET 4.0 中,Microsoft 通过向 Flush() 添加一个可选参数来解决此问题,如果设置为 true,则会调用 FlushFileSystemBuffers。在 .NET 3.5 及以下版本中,您唯一的选择是通过 pinvoke 调用 FlushFileBuffers。请参阅 MSDN 的 FileStream.Flush有关如何执行此操作的社区评论。

关于windows - 刷新磁盘写缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/173560/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com