import os
import sys
import time
import win32file
import win32event
import win32con
ACTIONS = {
1 : "Created",
2 : "Deleted",
3 : "Updated",
4 : "Renamed from something",
5 : "Renamed to something"
}
FILE_LIST_DIRECTORY = 0x0001
path_to_watch = u"d:\\test"
path_to_watch = os.path.abspath (path_to_watch)
print "Watching %s at %s" % (path_to_watch, time.asctime ())
FILE_LIST_DIRECTORY = 0x0001
hdir = win32file.CreateFile (path_to_watch,
FILE_LIST_DIRECTORY, win32con.FILE_SHARE_READ | win32con.FILE_SHARE_WRITE,
None, win32con.OPEN_EXISTING, win32con.FILE_FLAG_BACKUP_SEMANTICS, None)
while 1:
results = win32file.ReadDirectoryChangesW (
hdir, 1024, True,
win32con.FILE_NOTIFY_CHANGE_FILE_NAME |
win32con.FILE_NOTIFY_CHANGE_DIR_NAME |
win32con.FILE_NOTIFY_CHANGE_ATTRIBUTES |
win32con.FILE_NOTIFY_CHANGE_SIZE |
win32con.FILE_NOTIFY_CHANGE_LAST_WRITE |
win32con.FILE_NOTIFY_CHANGE_SECURITY,
None, None
)
for action, file in results:
full_filename = os.path.join (path_to_watch, file)
print full_filename, ACTIONS.get (action, "Unknown")
Thought about development and more. My interest is mainly in Python, Ruby and Lisp development, web and AI.
Monday, September 21, 2009
Watch folder for change
Subscribe to:
Posts (Atom)