当文件被写入磁盘时,Windows 系统是否已经认为该文件存在,还是等到写入过程完成?
基本上,我有一个脚本,用于检查目录每分钟是否有新添加的文件。如果有,我会将其上传到 API 端点。但现在的问题是,由于某种原因,上传的文件不完整。
我想知道 Windows 是否认为文件存在,即使它没有写入完成。我猜它只有在写入完成后才会显示在那里,但我不确定。
文件系统:NTFS
答案1
当它开始写入文件时,它必须创建它,并且一旦创建,它就存在。这对于任何文件系统都是必然的。而且它真的不可能是其他方式,因为创建文件的过程实际上可能会将其保持打开状态几个小时,反复写入,然后才完成并关闭它,并且您不希望在此过程中创建另一个同名文件;另一个进程也可能希望在此期间按名称处理它。在 Windows 中,可以以独占模式打开文件,这样如果其他人打开了该文件,您的打开操作将失败;在这种情况下,您知道它仍在写入,您可以稍等片刻,然后在几秒钟后重试。