我必须从 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");