2009-01-30 69 views
4

在Java中,我試圖登錄到FTP服務器並找到所有比x更新的文件以供檢索。從FTP文件列表中獲取項目的時間戳

目前我有一個輸入流,它在目錄內容中讀取並逐行打印出來,這一切都很好,但輸出相當模糊......看起來像這樣...

-rw-------  1 vuser 4773 Jun 10 2008 .bash_history 
-rw-r--r--  1 vuser 1012 Dec 9 2007 .bashrc 
lrwxrwxrwx  1 root  7 Dec 9 2007 .profile -> .bashrc 
drwx------  2 vuser 4096 Jan 30 01:08 .spamassassin 
drwxr-xr-x  2 vuser 4096 Dec 9 2007 backup.upgrade_3_7 
dr-xr-xr-x  2 root 4096 Dec 10 2007 bin 

等等

不過,我需要在幾秒鐘或毫秒實際的時間戳,這樣我能確定,如果我想那個文件或沒有。

我認爲這與FTP服務器的配置有關?但我很難過。

回答

4

也許值得看看具有FTP功能的Jakarta Commons Net API。

我認爲它可以使用list files這將給你的文件對象,你可以做getTimeStamp的,你應該能夠得到你需要的。

+0

工作,謝謝! – 2009-01-30 22:57:01

3

不幸的是,FTP服務器目錄列表的輸出不是由標準強制的。實際上,它被明確描述爲不適用於機器解析。某些操作系統上的服務器格式會有所不同。

RFC 3659描述​​了對FTP標準的一些擴展,包括查詢修改時間的「MDTM」命令。如果幸運的話,您想與之通話的服務器已經實現了此擴展。

+0

+1這對我有幫助,雖然我說的服務器實現它作爲MODTIME 2009-09-29 10:32:34

1

getTimestamp()讓你獲得文件的最後修改時間。如果您試圖獲取文件上傳到服務器的時間,那麼這是行不通的。我正在嘗試做類似的事情,我想獲取所有在X時間之後上傳的文件。我無法找到一個乾淨的方式來做到這一點,而沒有實際做一個ls並解析。