Извлечение файлов из SFTP
Я хочу получить файлы из SFTP, которые создаются после данной отметки времени (время последнего нажатия) в Java. Я использую j2ssh на данный момент. Пожалуйста, дайте мне знать, если какой-либо другой API поддерживает такую функцию.
1 ответ
Jsch поддерживает команду ls, которая вернет вам все атрибуты удаленного файла. Вы можете написать небольшой код, чтобы исключить файлы, которые вы хотите получить оттуда.
Java Doc: http://epaul.github.io/jsch-documentation/javadoc/
В этом примере сравниваются временные метки для удаленного файла, чтобы найти самый старый файл, и было бы не слишком сложно его изменить, чтобы сравнить дату последнего запуска с датой удаленного файла, а затем выполнить загрузку как часть цикла.
Код из Поиск размера файла и последнего изменения файла SFTP с использованием 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;
}
}