변경했을 때까지 블로킹하지 않고 파일의 시큐리티 허가의 변경을 캐치하고 싶을 때는, 변경했을 때의 팝업 같은 이벤트가 있습니다.블로킹하지 않고 파일의 시큐러티 액세스 허가의 변경을 캐치
타사 모듈이나 소프트웨어를 설치하고 싶지 않습니다.
주된 요구 사항은 모듈 또는 내장 모듈 중 일부입니다.
나는 현재이 기능에 의해 보안 변경 사항을보고 있어요 :
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를 정지.
어떤 OS입니까? 분명히 Windows이지만 버전은 무엇입니까? 얼마나 많은 파일을 시청해야합니까? (그 중 하나 일 경우 항상 파이프 등을 작성하는 별도의 차단 프로세스를 시작할 수 있습니다.) – alexis
Windows 7 및 하나의 파일. 어떻게하면됩니까? – justlittlequestion
그리고 파이프에 쓰는다면 어쨌든 차단합니다. GUI 프로세스가 파이프에서 읽기를 기다리는 경우 아무것도 변경하지 않으면 블로킹 문제가 발생하기 때문입니다. – justlittlequestion