SFTPサーバーから動的ファイル名を持つ多数の.CSVファイルを読み取る必要があります。これらのファイルは15分ごとに生成されます。
JSchのChannelSftpを使用していますが、正確なファイル名を指定する方法はありません。.ls()
メソッドしか見えません。これはベクトルを与えます例えば
[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]
ディレクトリ内のすべてのファイルを読み取り、それらを別の場所にコピーする簡単な方法はありますか?
このコードは、単一のファイルをコピーするために機能します。
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");