2011-02-26 82 views
1

在我的軟件中我將在我的文件夾之一中接收XML文件和PDF文件,所以我想啓動一個事件來讀取XML,所以我可以管理這些文件。如何檢測文件何時放入我的文件夾中

我該如何檢測這個事件,你能否給我推薦一本關於事件或者頁面的書,或者給我一個例子。

+0

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

回答

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 
} 
2
如前所述

FileSystemWatcher方式。

但是,請注意,它有一些細微之處:Created事件在每個文件創建時引發一次,但只要文件首次出現在文件夾中就會引發。如果您有不同的進程複製該文件(可能通過網絡連接),但如果您在處理Created事件時嘗試訪問該文件,則可能會遇到異常。

另請注意,如果另一個進程正在複製正在監視的文件夾中的文件,Changed事件很可能會多次提升。使用NotifyFilter可減少引發的事件數量。

相關問題