在我使用的几个脚本中,我遇到了间歇性的问题.
尝试删除文件时,脚本有时会失败.根据错误日志,由于其他进程正在访问该文件.我猜测在文件结束前一次操作后,窗口没有时间释放文件.
什么样的时间是一个很好的猜测,之后窗口应该有时间再次释放文件?
最佳答案 如果
Windows应用程序已完成文件处理,则应立即关闭,因为可能是他们关闭了文件句柄.文件关闭操作后解锁文件的时间没有延迟.
如果一个程序忘记关闭他们的文件句柄,但结束了,Windows将为他们释放它(只是不是立即).通常它不长,但它可以是任何时间,我没有看到它需要超过几秒钟.但应该进行适当的清理以避免被锁定.
值得一提的是,并非所有程序都以锁定的方式打开文件.他们可以打开文件,指定他们希望为其他进程提供哪种类型的访问,并且还可以锁定文件的某些部分.他们可以使用对其他进程的完全读/写权限打开该文件.
如果您无法控制未关闭其文件句柄的进程,但您需要执行它,则可以编写某种循环来继续尝试该文件几秒钟.