2009-01-30 70 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并解析。