我有一個Java應用程序監視目錄中的新文件並處理它在目錄中看到的任何新文件。 應用程序需要在Linux和Windows環境下運行。問題出現在linux上,當用戶手動拷貝目錄中的文件時,應用程序會在文件被完全複製到目錄之前選擇文件。 我有試圖用各種方法鎖定文件,但即使文件仍然被linux系統複製,應用程序也能夠獲取文件的鎖定。我也考慮使用lsof命令檢查文件,但它是linux特有的,所以我試圖避免這種情況。Linux + Java + Windows:檢查文件是否完全複製
可有人請提出一個方法,以防止應用程序正被攝取的不完整的文件? 在此先感謝。
解決此問題的一種方法是始終將兩個文件複製到目標文件夾中。首先將實際的數據文件複製到目標文件夾中,讓我們調用該文件「fileName.dat」。一旦這個文件副本成功完成,你就在目標文件夾中創建一個名爲「fileName.done」的虛擬文件。您的應用程序會檢測以「.done」結尾的文件,並知道準備讀取的「fileName.dat」。 – Hector
如果我們可以控制誰在複製目錄中的文件,這很有意義,很遺憾,我們不知道誰將複製文件以及如何引導它們。 – Prashant
直到其尺寸穩定五分鐘,或任何你認爲合適的時候才使用它。 – EJP