2013-10-18 14 views
0

我試圖做的事情是我需要經常檢查共享公司網絡位置上的文件是否可用。網絡管理員執行復制命令並將大磁盤映像文件.iso複製到此目標網絡位置。上傳(複製)過程大約需要4-5個小時,爲了將此文件複製到本地計算機,我需要一種方法來確定此文件是否已完全複製。如何使用PowerShell或其他方法檢查網絡位置上的文件是否正在寫入?

我已經嘗試使用System.IO.fileinfo :: Open,它在我的本地實驗上工作。 但昨天當它檢查時,它沒有告訴文件是否被鎖定 - 文件沒有經常被鎖定,並且由於它需要5個小時,所以偶爾文件似乎會短暫解鎖(可能是由於操作系統試圖分配另一個文件該文件的連續空間)。因此我的powershell腳本失敗了。

我也嘗試檢查文件的大小,因爲它被複制過來,但顯然文件的大小是不斷它的原始大小,所以這是行不通的。

那麼,有沒有人有任何想法如何驗證?先謝謝你。

回答

1

有一個FileSystemWatcher,但我不確定它是否可以在網絡文件夾上可靠地工作。另一種選擇是嘗試檢查文件的最後寫入時間,如果最後一次寫入時間沒有改變,例如3分鐘,則可能是複製完成。你也可以將它與你的鎖定檢查結合起來。

相關問題