我想捕捉文件安全权限的变化而不阻塞,直到进行更改,例如在进行更改时弹出的事件。
我也不想安装任何第三方模块或软件。
这样做的主要要求是在某些win32
模块或内置模块中。
我目前正在通过此功能观察安全性变化:
import win32con, win32file
def security_watcher():
specific_file = "specific.ini"
path_to_watch = "."
FILE_LIST_DIRECTORY = 0x0001
hDir = win32file.CreateFile(path_to_watch,
FILE_LIST_DIRECTORY,
win32con.FILE_SHARE_READ |
win32con.FILE_SHARE_WRITE |
win32con.FILE_SHARE_DELETE,
None,
win32con.OPEN_EXISTING,
win32con.FILE_FLAG_BACKUP_SEMANTICS,
None)
results = win32file.ReadDirectoryChangesW(hDir,
1024,
False,
win32con.FILE_NOTIFY_CHANGE_SECURITY,
None,
None)
print results
for action, file_name in results:
if file_name == specific_file:
# wake another function to do something about that
注意:我需要它是非阻塞的,因为我在 GUI 应用程序中使用了这个功能,它冻结了 GUI。