程序关闭后,Windows 中的文件可以锁定多长时间?

Ska*_*lig 5 windows filesystems scripting

在我使用的几个脚本中,我遇到了间歇性的问题。
有时,尝试删除文件时脚本会失败。根据错误日志,由于该文件被其他进程访问。我猜测在对文件执行的上一个操作结束后,Windows 没有时间释放该文件。

窗口应该有时间再次释放文件的时间是多少时间?

Bri*_*ndy 3

如果 Windows 应用程序处理完该文件,则应立即关闭它,因为它们可能关闭了文件句柄。文件关闭操作后解锁文件没有时间延迟。

如果程序忘记关闭其文件句柄,但结束后,Windows 将为它们释放它(只是不是立即)。通常它不会很长,但可以是任何时间,我还没有看到它花费的时间超过几秒钟。但应进行适当的清理以避免其被锁定。

还值得一提的是,并非所有程序都以锁定方式打开文件。他们可以打开文件,指定他们想要给予其他进程什么类型的访问权限,并且他们还可以锁定文件的部分内容。他们可以使用其他进程的完全读/写权限打开该文件。

如果您无法控制不关闭其文件句柄的进程,但您需要执行它,则可以编写某种循环来继续尝试该文件几秒钟。