Загрузить файл с несколькими расширениями удаленно с помощью JSCH

#java #sftp #jsch

#java #sftp #jsch

Вопрос:

У меня есть удаленный каталог /remote/Dir , в котором много файлов с разными расширениями.

Нравится

      *.abc
     *.xyz
     *.pqr
  

Я хочу загрузить все файлы, заканчивающиеся .abc .xyz .pqr

итак, в этом случае, как я использую JSch?

Ответ №1:

Добавьте все результаты ls в вектор.

 Vector<ChannelSftp.LsEntry> list = channelSftp.ls("*.abc");
list.addAll(channelSftp.ls("*.xyz"));
list.addAll(channelSftp.ls("*.pqr"));
  

После вам нужно выполнить цикл for в этом списке, чтобы получить все соответствующие файлы..

Комментарии:

1. У меня есть файл свойств, в котором есть все эти расширения, такие как value=» .abc, .xyz, *.pqr» итак, как бы мне получить все расширения одно за другим и добавить в вектор?

2. Это решение требует обращения к серверу для каждой ls() операции, что неэффективно. Было бы эффективнее получить список всех файлов в удаленном каталоге и отфильтровать их один раз локально. К сожалению, для этого потребуется реализовать собственное сопоставление подстановочных знаков, поскольку Jsch не предоставляет свою логику подстановочных знаков.