如何检测文件何时放入我的文件夹中

问题描述:

在我的软件中我将在我的文件夹之一中接收XML文件和PDF文件,所以我想启动一个事件来读取XML,所以我可以管理这些文件。如何检测文件何时放入我的文件夹中

我该如何检测这个事件,你能否给我推荐一本关于事件或者页面的书,或者给我一个例子。

+0

[如何查看文件系统的更改]的可能重复(http://stackoverflow.com/questions/317571/how-to-watch-a-file-system-for-change) – 2011-02-26 00:58:23

您可以使用FileSystemWatcher类来观察该文件夹中的XML文件。

你想使用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 
} 

如前所述

FileSystemWatcher方式。

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

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