我有一個作爲Windows服務運行的程序;它處理特定文件夾中的文件。由於它是一項服務,它會不斷監視文件夾以查找已添加的新文件。程序的一部分工作是對目標文件夾中的文件進行比較,並標記不匹配的文件。我想要做的是能夠檢測複製操作是否正在進行以及何時完成,這樣,如果文件尚未被複制到目標文件夾,則文件不會被過早標記。C# - 等待複製操作完成
我在想的是使用FileSystemWatcher觀察目標文件夾並查看是否正在進行復制操作。如果有,我把我的程序的主線程休眠,直到複製操作完成,然後繼續對文件夾執行正常操作。我只是想了解一下這種方法,看看它是否有效;如果其他人有任何其他獨特的方法來解決這個問題,將不勝感激。
UPDATE:
謝謝大家的建議
更新2:
我的混亂道歉,當我說目標目錄,我的意思是包含了所有我想要的文件的源文件夾處理。我的程序的一部分功能是將源目錄的目錄結構複製到目標目錄,並將所有有效的文件複製到該目標目錄,保留原始源目錄的目錄結構,即用戶可以複製包含文件的文件夾到源目錄。我想通過確保包含更多子文件夾和文件的一組新文件夾被複制到源目錄中進行處理來防止錯誤,直到複製過程完成後,我的程序纔會開始在目標目錄上運行。
+1。這是一個非常好的問題。我還沒有想出一種不覺得像黑客的方法。 – David 2011-01-13 17:35:51
這個問題是類似的,有一些很好的答案:http://stackoverflow.com/questions/30074/monitoring-files-how-to-know-when-a-file-is-complete – mfdoran 2011-01-13 17:38:20