我正在編寫一個工具來偵聽一個位置,最好是遠程位置,如果創建了一個新的文件夾或文件,它會將它下載到本地位置。如何知道在Windows中是否完成複製?
目前我正在用FileSystemWatcher
收聽遠程文件夾,當創建一個新的文件夾/文件時,我啓動一個計時器,如果計時器達到X分鐘,它開始將其複製到本地。 在「監視」文件夾中創建新文件夾或文件觸發器FileSystemWatcher.Changed
但它有時會失敗,如果有很多子目錄,並且如果有一個大文件複製到監視文件夾,它只在複製開始時檢測到它並且我的計時器可以完成,直到完成。
所以: 我有3個遠程計算機/位置,一個,乙,Ç
一個開始對某些文件夾/文件複製到乙和 Ç監聽到B。
如何Ç檢查,如果一個完成帶或不帶FileSystemWatcher
複製? 我不想經常比較B和C並複製其餘的文件。
我查了其他問題,但他們沒有回答,或者我已經實施了這些解決方案。 1,2,3
如果這是可行的,你可以使用一個臨時的XXX。$$$ tmp文件名,而複製和重命名爲原來的文件名,一旦複製操作完成。然後,您可以定期掃描目標計算機上不存在的非臨時文件。 –
幾乎每一個關於FSW的問題,都有很多討論這個問題。計時器並不意味着什麼,你不知道其他進程正在忙於複製文件,在運行什麼機器以及需要多長時間。保持定時器,但將其間隔設置爲較低值,如100毫秒。並繼續嘗試,最終你可以打開文件。 –
這是用的:https:// stackoverflow。com/questions/876473/is-there-a-way-to-check-if-a-file-is-use- – PaulF