程序closures后文件能够locking多长时间?

在我使用的几个脚本中,我有一个间歇性的问题。
有时脚本在尝试删除文件时失败。 根据由其他进程访问的文件导致的错误日志。 我猜测,窗口没有足够的时间来释放文件之后,对文件执行的操作结束。

在哪个窗口应该有时间再次释放文件之后,多less时间才是一个好的猜测?

如果Windows应用程序已经完成了文件处理,它应该立即关闭,因为大概他们关闭了文件句柄。 在文件关闭操作之后解锁文件没有任何延迟。

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

还值得一提的是,并不是所有的程序都以锁定的方式打开文件。 他们可以打开文件,指定他们想要给予其他进程的访问类型,还可以锁定部分文件。 他们可能会以完整的读/写权限打开文件到其他进程。

如果你不能控制没有关闭它的文件句柄的进程,但是你需要执行它,你可以编写一些循环来继续尝试文件几秒钟。

正如另一个用户已经发布,如果文件已经正确关闭,应该立即完成 – 直到操作系统排除,否则将有一个不确定的延迟。

始终,正确地处理资源。