我正在使用C#中的FileSystemWatcher構造。作爲課程的標準,我讓我的觀察者僅僅關注感興趣的目錄。我遇到的問題是,無論用戶事件(複製,創建,重命名),我正在拾取的唯一事件是Changed事件。C#:FileSystemWatcher僅派發ChangedEvent
例如。
觀看文件 「C:\桌面\ MattsRequest」
創建文件 「C:\桌面\ MattsRequest \ Dummy.txt」
觀察,只有給onChanged處理與「改變」一個FileSystemEventArg和路徑ARG引發的是「C:\桌面\ MattsRequest」 並沒有提到什麼文件被創建
我的監視器代碼看起來像這樣。
watcher = new FileSystemWatcher();
//watcher.IncludeSubdirectories = true;
watcher.InternalBufferSize = 32768 * 2;
//Can't use a synchro because I can't find an example of something that
//implements ISynchroniz-whatever
//watcher.SynchronizingObject =
watcher.Path = filePath;
watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite
| NotifyFilters.FileName | NotifyFilters.DirectoryName
| NotifyFilters.CreationTime;
watcher.Changed += OnChanged; //Gets triggered
watcher.Created += OnCreated; //Never triggered
watcher.Deleted += OnDeleted;
watcher.Renamed += OnRenamed; //Never triggered
watcher.Error += WatcherOnError; //Never triggered
// Begin watching.
watcher.EnableRaisingEvents = true;
下面是當我創建的監控目錄的新文件的圖像,並且它觸發關閉事件。它的類型當然是Changed,但它並不告訴我創建了哪個文件。
任何幫助是極大的讚賞。
最有可能你看頂級目錄。例如,您觀看「Desktop \ MattsRequest」,但您在子目錄「Desktop \ MattsRequest \ MattsRequest \ Dummy.txt」中創建文件。 – Evk
如果你想跟蹤子目錄中的變化 - 設置'watcher.IncludeSubdirectories = true;' – Evk
@Evk Hello Evk。你是完全正確的問題是什麼。你介意讓你的評論成爲迴應,所以我可以給它一個綠色支票? –