2012-08-03 50 views
2

從ftp服務器檢索文件以檢查要下載的文件是否爲正在進行的傳輸(某人在我們決定下載期間已上傳此文件)的最佳方式是什麼? ftp客戶端apis是否處理這個問題? (例如apache commons ftp客戶端)。ftp文件檢索未完成的文件

回答

1

我認爲這是不可能的。幾年前我有類似的問題,我有2個選項。 (不幸的是,它是C#,而不是Java) 你可以檢查文件是否仍在增長(意味着你將會有一個小的延遲,因爲你需要檢查兩次),或者如果你使用Windows(我不知道如何Linux的作品),你可以嘗試訪問這個文件,你應該得到一個異常,該文件正在被另一個進程使用。 只有兩種可能性和一個初學者讓你考慮你的問題。也許別人' s提出了一個非常好的解決方案,但現在這可能是一個小的解決方法爲你

1

Ftp並沒有設計告訴你,如果一個文件正在使用,最ftp守護進程可以做否認傳輸,並且可以在某些服務器上配置。可能有一臺服務器暫時重命名文件或提供腳本來執行此操作,但您必須找到一個。

1

不知道它是否足夠你,但如果你只需要一些「dum」檢查,我會嘗試System.getSecurityManager().checkDelete()。只有在沒有流打開的情況下才能刪除文件。