def run(self,**kwargs):
'''
sits and waits for a directory change. on change:
1. reads current db monitor list
2. if file is being monitored, copies file zipped to backup dir
3. queues upload job
'''
while True:
results = win32file.ReadDirectoryChangesW(
self.hDir,
16384,
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)
if kwargs.get('function'):
kwargs.get('function')()
for action, file in results:
full_filename = os.path.join(self.path_to_watch,file)
monitor_comparison = check_monitor(full_filename)
if len(monitor_comparison) == 1:
try:
outcome = check_md5_and_process(monitor_comparison,full_filename,self.backup_dir)
if outcome == True:
if kwargs.get('signal'):
kwargs.get('signal').emit()
except FileNotFoundError:
pass
评论列表
文章目录