我想从SFTP中获取文件,这些文件是在java中给定的时间戳(最后一次拉动的时间)之后创建的。我现在正在使用j2ssh。如果其他API支持此类功能,请与我们联系。
答案 0 :(得分:0)
Jsch支持ls命令,它将返回远程文件的所有属性。您可以编写一些代码来消除要从中检索的文件。
Java Doc:http://epaul.github.io/jsch-documentation/javadoc/
此示例比较远程文件时间戳以查找最旧的文件,修改它以将上次运行日期与远程文件日期进行比较,然后将下载作为环。
来自Finding file size and last modified of SFTP file using Java的代码
try {
list = Main.chanSftp.ls("*.xml");
if (list.isEmpty()) {
fileFound = false;
}
else {
lsEntry = (ChannelSftp.LsEntry) list.firstElement();
oldestFile = lsEntry.getFilename();
attrs = lsEntry.getAttrs();
currentOldestTime = attrs.getMTime();
for (Object sftpFile : list) {
lsEntry = (ChannelSftp.LsEntry) sftpFile;
nextName = lsEntry.getFilename();
attrs = lsEntry.getAttrs();
nextTime = attrs.getMTime();
if (nextTime < currentOldestTime) {
oldestFile = nextName;
currentOldestTime = nextTime;
}
}