使用 FTPClient.getModificationTime 在 FTP 服务器中获取文件的最后修改日期会产生 null
Fetching last modified date of a file in FTP server using FTPClient.getModificationTime yields null
我正在尝试从 FTP 中获取文件的最后修改日期 environment.The 结果与预期不符。
通过使用 ftpClient.getModificationTime("File path")
我得到 null。
通过使用 FTPFile.getTimestamp().getTime()
我得到 错误的最后修改时间 (即真正的最后修改时间是今天,我得到 2 月 18 日星期三 02:55:22 2004 年美国东部时间).
如何获得正确的最后修改?File at FTP
提前致谢。
FTPClient.getModificationTime
returnsnull
当服务器returns错误响应MDTM
命令。通常这意味着:
- “文件路径”不存在;或
- FTP 服务器不支持
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());
另见 。
我发现了我做的错误。
我正在使用 SFTP 环境而不是 FTP 环境。我不得不使用 SFTP 而不是 FTP.
的 jar 文件和其他功能
谢谢。
我正在尝试从 FTP 中获取文件的最后修改日期 environment.The 结果与预期不符。
通过使用 ftpClient.getModificationTime("File path")
我得到 null。
通过使用 FTPFile.getTimestamp().getTime()
我得到 错误的最后修改时间 (即真正的最后修改时间是今天,我得到 2 月 18 日星期三 02:55:22 2004 年美国东部时间).
如何获得正确的最后修改?File at FTP
提前致谢。
FTPClient.getModificationTime
returnsnull
当服务器returns错误响应MDTM
命令。通常这意味着:
- “文件路径”不存在;或
- FTP 服务器不支持
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());
另见
我发现了我做的错误。
我正在使用 SFTP 环境而不是 FTP 环境。我不得不使用 SFTP 而不是 FTP.
的 jar 文件和其他功能谢谢。