从SFTP获取文件

时间:2017-08-22 10:42:30

标签: java sftp ssh2-sftp j2ssh

我想从SFTP中获取文件,这些文件是在java中给定的时间戳(最后一次拉动的时间)之后创建的。我现在正在使用j2ssh。如果其他API支持此类功能,请与我们联系。

1 个答案:

答案 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;
            }
        }