Следит за файлами в папке Temp
# -*- coding: cp1251 -*-
import os, win32file, win32con
def _print(argStr):
print unicode(argStr, 'cp1251')
ACTIONS = {
1 : unicode("Создан", 'cp1251'),
2 : unicode("Удалён", 'cp1251'),
3 : unicode("Изменён", 'cp1251'),
4 : unicode("Переименован во что-то", 'cp1251'),
5 : unicode("Переименован из чего-то", 'cp1251')
}
FILE_LIST_DIRECTORY = 0x0001
path_to_watch = "C:\Documents and Settings\san\Local Settings\Temp\\"
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")
Поиск и запуск файла
import os
for d, dirs, files in os.walk("D:/"):
for f in files:
if f == "mail.py":
print f,"Найдено в", d
os.chdir(d)#указание директории
os.startfile(f)#запуск файла