我有一個服務.NET使用FtpWebRequest從FTP服務器下載圖像。我有一臺相機,它將圖像存儲在同一臺FTP服務器上。.NET FtpWebRequest:如何檢查文件是否準備好下載
如果我的服務看到圖像並嘗試在相機完成存儲相同圖像之前下載圖像,圖像的「尚未存儲的部分」顯示爲灰色(損壞)。
問題:如何檢測圖像是否準備好下載(完全存儲)?
我有一個服務.NET使用FtpWebRequest從FTP服務器下載圖像。我有一臺相機,它將圖像存儲在同一臺FTP服務器上。.NET FtpWebRequest:如何檢查文件是否準備好下載
如果我的服務看到圖像並嘗試在相機完成存儲相同圖像之前下載圖像,圖像的「尚未存儲的部分」顯示爲灰色(損壞)。
問題:如何檢測圖像是否準備好下載(完全存儲)?
如果您控制了發送服務,您可以使用標記文件實現此功能。如果發送服務將例如寫完一個「完成」文件後,你可以等待該文件出現。
但是,我懷疑你沒有控制相機中的軟件。檢測攝像頭是否已完成上傳,特別是緩慢的互聯網連接有幾個問題。
我認爲最好的解決方案是檢查文件大小的變化。監視文件夾並查看是否顯示新文件。然後,如果文件大小沒有改變,例如一分鐘,下載文件應該是相當安全的。
@ ** Pieter **:您是對的,我無法控制相機軟件。我會追求文件大小監視器的想法 - 感謝您的答案=) – Chau 2010-11-16 10:02:13
不客氣。 – 2010-11-16 10:27:37
上傳大文件後的另一個小文件。使用這個小文件來檢查'完整性'(或者也可能是一個內部的MD5)。
將相機軟件存儲在不同的目錄中(我們稱之爲Dir1)。嘗試將文件從這個目錄移動到另一個目錄(我們稱之爲Dir2)。
如果相機軟件仍然打開文件,移動將失敗,因此只有完成的圖像將從Dir1移至Dir2。
從Dir2下載圖像。
一個骯髒的解決方法是隻下載大於x分鐘的圖像。 – Bobby 2010-11-16 09:46:50