当前位置:  开发笔记 > 开发工具 > 正文

刷新磁盘写缓存

如何解决《刷新磁盘写缓存》经验,为你挑选了1个好方法。

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

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

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



1> jimvfr..:

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

推荐阅读
linjiabin43
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有