是否可以监视Windows驱动器上的每个文件创建?

时间:2012-05-06 21:07:02

标签: python windows directory

我正在用Python编写一个程序,用于存储系统中每个文件的信息。当它安装完毕后,它将遍历每个文件,但之后我想在创建新文件或移动文件时更新它。例如,在Dropbox服务中,每当我将文件复制到我的Dropbox目录中时,它会立即通知并将其上传到他们的服务器。

有没有办法在没有轮询的情况下在Python中执行此操作?我正在考虑在创建文件时触发某种事件监听器。

1 个答案:

答案 0 :(得分:2)

尝试以下方法之一:

我认为其中第一个使用起来更简单。使用示例(来自其网站):

import watcher
w = watcher.Watcher(dir, callback)
w.flags = watcher.FILE_NOTIFY_CHANGE_FILE_NAME
w.start()

watcher是包装系统API的模块,在MSDN上有描述:

http://msdn.microsoft.com/en-us/library/aa365465(v=vs.85).aspx

因此,标记watcher.FILE_NOTIFY_CHANGE_FILE_NAME表示您将收到有关以下内容的通知:

  

监视目录或子树中的任何文件名更改都会导致更改通知等待操作返回。更改包括重命名,创建或删除文件。