簡體   English   中英

當我實際刪除文件時觸發C#FileSystemWatcher,但是當我使用File.Move時不會觸發

[英]C# FileSystemWatcher firing when i physically drop a file, however not when i use File.Move

手動將Excel文件拖放到本地文件夾中,其中有一個FileWatcher,它將文件轉換為新的文件結構,並將其移動到下一個具有FileWatcher的文件夾中。 問題在於,當此文件移動到下一個文件夾時,filewatcher不會觸發任何事件。 但是,如果我將其切下並實際放下,則會觸發該事件。 我正在使用File.Move將文件從folder1復制到folder2

您應該查看FileSystemWatcher來檢測文件何時移動到文件夾

實際上,如果有移動,文件系統監視程序將發送一個刪除操作(在源目錄監視程序中)和一個創建操作(在目標目錄監視程序中)。

嘗試使用重命名的事件。

另一個原因可能是緩沖區大小可能超出。

 Public void WatchItBaby()
 {
    // ...
    FileSystemWatcher watcher = new FileSystemWatcher(@"c:\temp\", "*.txt");            
    watcher.Created += new FileSystemEventHandler(OnChangedOrRenamed);          
    watcher.Renamed += new RenamedEventHandler(OnChangedOrRenamed);
    watcher.EnableRaisingEvents = true;
    // ...
 }

 private void OnChangedOrRenamed(object source, FileSystemEventArgs e)
 {
    // stuff        
 }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM