private static void getFTPFileProperties(FTPClient client,
String ftpLocation, String pattern) throws IOException {
FTPFile[] fileList=null;
fileList = client.listFiles();
for(int i=0;i<fileList.length;i++)
{
FTPFile file= fileList[0];
Calendar cal = file.getTimestamp();
DateFormat dateFormater = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(dateFormater.format(cal.getTime()));
}
}
我编写了上面的函数来检索文件的详细信息。但不知何故,我正在检索文件中没有秒部分的细节。
我正在检索lastModifiedDate
2013-08-08 00:00:00
,其实际lastModifiedDate
为2013-08-08 12:53:27 PM
答案 0 :(得分:2)
FTPClient.listFiles
使用古老的LIST
命令。使用该命令,FTP服务器返回类似于Unix ls
命令的列表是很常见的。对于旧文件(超过一年),它仅显示日精度的时间戳。
如今,您应该始终使用FTPClient.mlistDir
,它使用现代MLSD
command,它始终以第二精度检索时间戳。
public FTPFile[] mlistDir() throws IOException
当然,除非你连接到一个古老的FTP服务器,否则它不支持MLSD
命令。
请注意,自Apache Commons Net 3.0起支持mlistDir
。