如何检测文件放在我的某个文件夹中的时间

时间:2011-02-26 00:41:30

标签: c# events filesystemwatcher

在我的软件中,我将在我的一个文件夹中收到一个XML文件和一个PDF文件,所以我想启动一个事件来读取XML,这样我就可以管理这些文件了。

我怎样才能发现这个事件,你能不能给我一本关于事件或页面的书,也许给我一个例子。

3 个答案:

答案 0 :(得分:5)

您想使用FileSystemWatcher

void foo()
{
    FileSystemWatcher watcher = new FileSystemWatcher();
    watcher.Path = "C:\\temp";
    watcher.Changed += watcher_Changed;
    watcher.Created += watcher_Created;
    watcher.Filter = "*.pdf";
}

void watcher_Created(object sender, FileSystemEventArgs e)
{
   //handle created
}

void watcher_Changed(object sender, FileSystemEventArgs e)
{
    //Handle changed
}

答案 1 :(得分:2)

如前所述,FileSystemWatcher 的方式。

但请注意,它有一些细微之处:Created事件在每个创建的文件中引发一次,但一旦文件首次出现在文件夹中就会引发。如果您有一个不同的进程可以通过网络连接复制该文件,如果您在处理Created事件时尝试访问该文件,则可能会出现异常。

另请注意,如果另一个进程正在复制您正在观看的文件夹中的文件,则Changed事件很可能会多次被提升。使用NotifyFilter减少引发的事件数。

答案 2 :(得分:0)

您可以使用FileSystemWatcher类来查看XML文件的该文件夹。