第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用FileSystemWatcher監(jiān)視目錄

使用FileSystemWatcher監(jiān)視目錄

C#
不負相思意 2019-10-16 10:59:28
我正在使用Windows窗體應(yīng)用程序監(jiān)視目錄,并將放置在其中的文件移動到另一個目錄。目前,它將文件復(fù)制到另一個目錄,但是當(dāng)添加另一個文件時,它只會以沒有錯誤消息的結(jié)尾。有時它確實會復(fù)制兩個文件,然后再復(fù)制第三個文件。這是因為我使用的是Windows窗體應(yīng)用程序而不是控制臺應(yīng)用程序?有什么辦法可以阻止程序結(jié)束并繼續(xù)監(jiān)視目錄?private void watch(){  this.watcher = new FileSystemWatcher();  watcher.Path = path;  watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite                         | NotifyFilters.FileName | NotifyFilters.DirectoryName;  watcher.Filter = "*.*";  watcher.Changed += OnChanged;  watcher.EnableRaisingEvents = true;}private void OnChanged(object source, FileSystemEventArgs e){  //Copies file to another directory.}public void Dispose(){  // avoiding resource leak  watcher.Changed -= OnChanged;  this.watcher.Dispose();}
查看完整描述

3 回答

?
LEATH

TA貢獻1936條經(jīng)驗 獲得超7個贊

問題是通知過濾器。該程序試圖打開一個仍在復(fù)制的文件。我刪除了除LastWrite之外的所有通知過濾器。


private void watch()

{

  FileSystemWatcher watcher = new FileSystemWatcher();

  watcher.Path = path;

  watcher.NotifyFilter = NotifyFilters.LastWrite;

  watcher.Filter = "*.*";

  watcher.Changed += new FileSystemEventHandler(OnChanged);

  watcher.EnableRaisingEvents = true;

}


查看完整回答
反對 回復(fù) 2019-10-16
?
拉丁的傳說

TA貢獻1789條經(jīng)驗 獲得超8個贊

您沒有提供文件處理代碼,但是我假設(shè)您在第一次編寫這樣的東西時每個人都犯了同樣的錯誤:文件創(chuàng)建后,將立即引發(fā)filewatcher事件。但是,完成文件將需要一些時間。以文件大小為1 GB為例。該文件可能是由另一個程序創(chuàng)建的(Explorer.exe從某個地方復(fù)制該文件),但是要花幾分鐘才能完成該過程。該事件在創(chuàng)建時引發(fā),您需要等待文件準備好被復(fù)制。


您可以循環(huán)使用此功能來等待文件準備就緒。


查看完整回答
反對 回復(fù) 2019-10-16
  • 3 回答
  • 0 關(guān)注
  • 689 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號