【发布时间】:2023-03-20 10:25:01
【问题描述】:
我有代码,但它不符合我的要求。我正在尝试通过 Python 脚本删除缩略图缓存。如果我打开了缓存和资源管理器,则某些 .db 文件不会被删除,因为它们正在被资源管理器使用。无论如何,在我的实验中,唯一的方法是更改显示图标/缩略图的高级文件夹设置,然后重新启动资源管理器。我可以通过注册表中的脚本更改设置,然后重新启动资源管理器。但是,重新启动资源管理器会停止脚本。所以,我不知道。我还尝试更改设置,然后通过 SendMessageTimeout() 发送 WM_SETTINGCHANGE 消息。那没有成功。
那么,任何人都知道如何从资源管理器(这也可能与其他正在使用的文件有关)解锁文件(可以安全删除)而不重新启动它?另外,我知道这是一个愚蠢的项目,但我有这样做的理由,这就是我想做的。
【问题讨论】:
-
我继续调查,似乎终止文件句柄是删除它们的唯一方法。我找到了 Sysinternals 的“句柄”,使用它,并且缩略图缓存句柄没有关闭。 Windows 真的不希望删除这些文件,直到它说可以。磁盘清理是如何做到的? CCleaner 是如何做到的?
标签: python-3.x windows winapi