2017-08-22 4 views
0

Ich möchte Dateien von SFTP, die nach einem bestimmten Zeitstempel (Zeitpunkt des letzten Pull) in Java erstellt werden. Ich benutze j2ssh ab sofort. Bitte lassen Sie mich wissen, wenn eine andere API eine solche Funktion unterstützt.Abrufen von Dateien von SFTP

Antwort

0

Jsch unterstützt den Befehl ls, der Ihnen alle Attribute der Remote-Datei zurückbringt. Sie können einen kleinen Code schreiben, um die Dateien zu entfernen, die Sie von dort abrufen möchten.

Java Doc: http://epaul.github.io/jsch-documentation/javadoc/

Dieses Beispiel vergleicht den Remote-Dateizeitstempel die älteste Datei zu finden, wäre es nicht weit hergeholt sein, es zu ändern, um Ihr letztes Ausführungsdatum vor dem Remote-Dateidatum zu vergleichen, dann Mach den Download als Teil der Schleife.

-Code von 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; 
      } 
     } 
Verwandte Themen