首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用FTPClient.getModificationTime获取FTP服务器中文件的最后修改日期将产生null

使用FTPClient.getModificationTime获取FTP服务器中文件的最后修改日期将产生null
EN

Stack Overflow用户
提问于 2018-04-03 06:15:38
回答 2查看 4.1K关注 0票数 2

我正在尝试从FTP environment.The结果中获取文件的最后修改日期,但结果不像预期的那样。

通过使用ftpClient.getModificationTime("File path"),我将获得

通过使用FTPFile.getTimestamp().getTime(),我得到了错误的,最后修改了(即,真正的最后修改是今天的,我得到的是Wed 18 02:55:22 EST 2004)。

如何得到正确的最后修改?文件在FTP上

提前谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-04-03 06:53:34

当服务器返回对FTPClient.getModificationTime命令的错误响应时,null返回MDTM。这通常意味着:

  • “档案路径”不存在;或
  • FTP服务器不支持MDTM命令。

检查FTPClient.getReplyString()

如果最终发现FTP服务器不支持MDTM命令,则必须使用另一种方法检索时间戳。如果不支持MDTM,那么MLSD也不会被支持。

在这种情况下,唯一的其他方法是使用LIST命令检索所有文件的列表并查找所需的文件--使用FTPClient.listFiles()

代码语言:javascript
复制
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());

另见使用Apache FTPClient使FTP服务器返回按时间戳列出的文件

票数 4
EN

Stack Overflow用户

发布于 2018-04-04 06:02:12

我发现了我所犯的错误。

我的工作是一个SFTP环境,而不是FTP环境。我不得不使用jar文件和SFTP的其他功能,而不是FTP。

谢谢。

票数 -4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49623415

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档