从FTP文件列表中获取项目的时间戳

时间:2009-01-30 21:36:44

标签: java ftp

在Java中,我正在尝试登录到FTP服务器并查找比x更新的所有文件以进行检索。

目前我有一个输入流正在读取目录内容并逐行打印出来,这一切都很好,但输出相当模糊......看起来像这样...

-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服务器的配置有关?但我有点难过。

3 个答案:

答案 0 :(得分:4)

或许值得查看具有FTP功能的Jakarta Commons Net API。

我认为你可以使用list files来提供你可以getTimeStamp开启的文件对象,然后你应该能够得到你需要的文件对象。

答案 1 :(得分:3)

不幸的是,标准没有规定FTP服务器目录列表的输出。实际上,它明确地描述为不用于机器解析。某些操作系统上的服务器之间的格式会有很大差异。

RFC 3659描述​​了FTP标准的一些扩展,包括用于查询修改时间的“MDTM”命令。如果幸运的话,您要与之交谈的服务器已实现此扩展程序。

答案 2 :(得分:1)

getTimestamp()获取文件的最后修改时间。如果您正在尝试将文件上传到服务器的时间,那将无法正常工作。我正在尝试做类似的事情,我想获得在X时间之后上传的所有文件。如果没有实际执行ls并解析它,我找不到干净的方法。