在我的一个脚本中,我需要删除一个可能正在使用的文件。我知道只有在文件不再被使用时才能删除它,但我也知道可以向操作系统(Windows XP)标记该文件以进行删除。我应该如何在Python中实现这个功能?
在我的一个脚本中,我需要删除一个可能正在使用的文件。我知道只有在文件不再被使用时才能删除它,但我也知道可以向操作系统(Windows XP)标记该文件以进行删除。我应该如何在Python中实现这个功能?
还有另一个版本,不依赖于pywin32二进制文件。
import ctypes
MOVEFILE_DELAY_UNTIL_REBOOT = 4
ctypes.windll.kernel32.MoveFileExA("/path/to/lockedfile.ext", None,
MOVEFILE_DELAY_UNTIL_REBOOT)
import win32file
import win32api
win32file.MoveFileEx("/path/to/lockedfile.ext", None ,
win32file.MOVEFILE_DELAY_UNTIL_REBOOT)
使用MoveFileEx
函数:
如果dwFlags指定MOVEFILE_DELAY_UNTIL_REBOOT并且lpNewFileName为NULL,则MoveFileEx会在系统重新启动时注册要删除的lpExistingFileName文件。如果lpExistingFileName引用目录,则仅当目录为空时,系统才会在重新启动时删除该目录。