我正在尝试从FTP environment.The结果中获取文件的最后修改日期,但结果不像预期的那样。
通过使用ftpClient.getModificationTime("File path"),我将获得空。
通过使用FTPFile.getTimestamp().getTime(),我得到了错误的,最后修改了(即,真正的最后修改是今天的,我得到的是Wed 18 02:55:22 EST 2004)。
如何得到正确的最后修改?文件在FTP上
提前谢谢。
发布于 2018-04-03 06:53:34
当服务器返回对FTPClient.getModificationTime命令的错误响应时,null返回MDTM。这通常意味着:
MDTM命令。如果最终发现FTP服务器不支持MDTM命令,则必须使用另一种方法检索时间戳。如果不支持MDTM,那么MLSD也不会被支持。
在这种情况下,唯一的其他方法是使用LIST命令检索所有文件的列表并查找所需的文件--使用FTPClient.listFiles()。
FTPFile[] remoteFiles = ftpClient.listFiles(remotePath);
Arrays.sort(remoteFiles,
Comparator.comparing((FTPFile remoteFile) -> remoteFile.getTimestamp()).reversed());
FTPFile latestFile = remoteFiles[0];
System.out.println(
"Latest file is " + latestFile.getName() +
" with timestamp " + latestFile.getTimestamp().getTime().toString());发布于 2018-04-04 06:02:12
我发现了我所犯的错误。
我的工作是一个SFTP环境,而不是FTP环境。我不得不使用jar文件和SFTP的其他功能,而不是FTP。
谢谢。
https://stackoverflow.com/questions/49623415
复制相似问题