我有一个在Windows 10上运行的应用程序,它使用Python 2.7将临时文件写入磁盘,然后使用关联的应用程序打开它们。
清理使用Edge打开的临时.pdf文件时,我遇到了意外行为。
如果我有以下情况:
- 我在磁盘上有.pdf文件
- 我用Edge打开.pdf
- 在使用Edge
关闭.pdf之前,我在此文件上调用os.remove()
醇>
然后发生这种意外行为:
- 对os.remove()的第一次调用毫无例外地完成,
- 使用此文件的路径调用os.path.isfile()返回False。
- 但文件资源管理器
显示文件似乎仍保留在磁盘上
- 对os.remove()的后续调用失败:“访问被拒绝”,
- 对父目录的os.rmdir()调用失败:“目录不为空”。
醇>
最后当Edge关闭.pdf文件时:
- 该文件将从文件系统中删除。
醇>
操作系统是否提供了“延迟删除”行为?
Edge是否对文件保持非独占锁定?
这里发生了什么?