gpt4 book ai didi

windows - MoveFile 是否确保文件在磁盘上移动?

转载 作者:可可西里 更新时间:2023-11-01 11:16:31 26 4
gpt4 key购买 nike

从 MSDN 我了解到,当您在没有 FILE_FLAG_NO_BUFFERING 的情况下调用 WinApi CreateFile 时,WriteFile 会将数据写入系统缓存。它不直接写入物理磁盘。操作系统稍后会将其写入物理磁盘。

我想知道调用 MoveFile 时会发生什么。是否保证在 MoveFile 调用后文件实际移动到物理磁盘上或仅更新系统缓存?

最佳答案

如果您想要保证移动已到达磁盘,请使用带有 MOVEFILE_WRITE_THROUGH 标志的 MoveFileEx,它确实可以做到这一点。请注意,这可能是严重的性能损害(通常很少或没有好处)。

MoveFile 本身并没有指定文件的移动方式。它可能确实移动,或者它可能复制并删除,它可能会也可能不会使用缓冲区缓存。
可以合理地假设它确实可以使用缓冲区高速缓存,并且“移动”实际上意味着在同一物理磁盘上“移动”。

通常没有太多理由不使用缓冲区高速缓存,因为除了计算机在操作过程中崩溃或用户在外部磁盘上拔电缆外,这是一个非常可靠的事情。这两种情况都非常罕见。但即使它们发生了,灾难性的后果通常也很轻微,而且是可以忍受的,除非你试图移动包含数万个文件的巨大目录(通常,什么都没有移动,或者取决于操作模式,你有一个完整的原始文件和一个陈旧的文件在目的地)。

关于windows - MoveFile 是否确保文件在磁盘上移动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40157142/

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