0
我有下面的代碼,我想告訴我什麼時候將新文件添加到FileSystemWatcher正在監視的目錄中。問題是,當在被監視的目錄中創建一個文件時,它會引發三個事件 - 我只想要一個。提出的事件都「改變」了。有什麼我做錯了嗎?FileSystemMonitor只在目錄中創建文件時檢測一次?
FileSystemWatcher _fileWatcher = new FileSystemWatcher();
_fileWatcher.Path = DirToMonitor;
_fileWatcher.NotifyFilter = NotifyFilters.LastWrite;
_fileWatcher.Filter = "*.*";
_fileWatcher.Created += new FileSystemEventHandler(_fileWatcher_Created);
_fileWatcher.Renamed += new RenamedEventHandler(_fileWatcher_Renamed);
_fileWatcher.Changed += new FileSystemEventHandler(_fileWatcher_Changed);
_fileWatcher.EnableRaisingEvents = true;
編輯:我用「LastWrite」,因爲這被在目錄級,而不是新的文件監控。唯一可能的更改似乎是LastWrite,Size和Attributes。 LastWrite似乎是最明智的...
的問題是,在NotifyFilter可能性適用於該目錄是monitored-無法創建新的文件。所以從那些只有LastWrite,屬性和大小將probaby更改時創建一個新文件。 – mezamorphic
肯定通過使用CreationTime過濾器(應該只在創建文件時設置)才足夠?對不起,之前沒有做過這方面的任何工作,但鏈接中的示例意味着應該有可能。 – ChrisBint
CreationTime適用於目錄,但不是新文件?添加新文件時,目錄創建時間不會更改?它似乎沒有在測試過程中工作 - 因此我最終使用了LastWrite。 – mezamorphic