■
import win32file import win32con FILE_LIST_DIRECTORY = 0x0001 path = "d:/temp" # 監視するパス hDir = win32file.CreateFile ( path, #監視するパス FILE_LIST_DIRECTORY, win32con.FILE_SHARE_READ | win32con.FILE_SHARE_WRITE, None, win32con.OPEN_EXISTING, win32con.FILE_FLAG_BACKUP_SEMANTICS, None) result = win32file.ReadDirectoryChangesW( hDir, #監視するディレクトリの識別ファイルハンドル。 1024, True, #サブディレクトリも監視するか監視するならTrue win32con.FILE_NOTIFY_CHANGE_DIR_NAME, #フィルター None, None) print result
返ってくる結果は,変更などがされたディレクトリのパスとアクションのタプルのリスト.アクションは, 1 作成, 2 削除, 3 更新, 4 このパスがリネーム, 5 このパスにリネームになっている.フィルターの部分を変えるとファイルも監視できる.
うちではこれを使ってpiroriさんのclmode_goを改造してディレクトリを監視して変更を登録保存している.