Usando o JSch ChannelSftp: como ler vários arquivos com nomes dinâmico
Preciso ler vários arquivos .CSV com nomes de arquivos dinâmicos em um servidor SFTP. Esses arquivos são gerados a cada 15 minutos.
Estou usando o ChannelSftp do JSch, mas não existe um método que dê os nomes de arquivos exatos. Só vejo um.ls()
método. Isso fornece um vetor, por exemplo,
[drwxr-xr-x 2 2019 2019 144 Aug 9 22:29 .,
drwx------ 6 2019 2019 176 Aug 27 2009 ..,
-rw-r--r-- 1 2019 2019 121 Aug 9 21:03 data_task1_2011_TEST.csv,
-rw-r--r-- 1 2019 2019 121 Aug 9 20:57 data_task1_20110809210007.csv]
Existe uma maneira simples de ler todos os arquivos em um diretório e copiá-los para outro loca
Este código funciona para copiar um único arquivo:
JSch jsch = new JSch();
session = jsch.getSession(SFTPUSER,SFTPHOST,SFTPPORT);
session.setPassword(SFTPPASS);
java.util.Properties config = new java.util.Properties();
config.put("StrictHostKeyChecking", "no");
session.setConfig(config);
session.connect();
channel = session.openChannel("sftp");
channel.connect();
channelSftp = (ChannelSftp)channel;
channelSftp.cd(SFTPWORKINGDIR);
channelSftp.get("data_task1_20110809210007.csv","data_task1_20110809210007.csv");