Windows 删除后强制文件系统同步

Windows 删除后强制文件系统同步,windows,filesystems,fflush,fsync,Windows,Filesystems,Fflush,Fsync,我想加载一个文件,使其内容要么在内存中,要么在磁盘上,但不能同时在内存和磁盘上。通过执行简单的打开、读取和删除操作,这应该可以完成任务。但似乎由操作系统决定何时将delete命令刷新到硬件。在linux的情况下,调用sync()应该可以实现这一点。在Windows世界中,最接近的是FlushFileBuffers(),它具有一个句柄。删除文件时,不使用句柄,只使用路径。有没有办法强迫Windows将删除请求刷新到磁盘,而不是排队或缓存它?“要刷新卷上所有打开的文件,请使用卷句柄调用FlushFi

我想加载一个文件,使其内容要么在内存中,要么在磁盘上,但不能同时在内存和磁盘上。通过执行简单的打开、读取和删除操作,这应该可以完成任务。但似乎由操作系统决定何时将delete命令刷新到硬件。在linux的情况下,调用
sync()
应该可以实现这一点。在Windows世界中,最接近的是
FlushFileBuffers()
,它具有一个句柄。删除文件时,不使用句柄,只使用路径。有没有办法强迫Windows将删除请求刷新到磁盘,而不是排队或缓存它?

“要刷新卷上所有打开的文件,请使用卷句柄调用FlushFileBuffers。”-我希望这将包括文件删除。但一般来说,这没有多大意义,因为硬盘本身有内部缓存。Linux不会仅仅因为在打开+取消链接后进行fsync就从磁盘删除文件。只是文件不再可以通过名称空间访问访问。只有在最后一个fd关闭后才能回收空间。