我正在使用 JSCH 从 SFTP 服务器下载文件。我正在使用单个会话,通过多个通道从位于 SFTP 的不同文件夹中下载文件。对于这个下载过程,我有一组预定的作业。每项工作将:
ChannelSftp
每次打开一个新频道 ( )。频道名称:sftp- 使用方法
ChannelSftp.ls()
获取要下载的文件总数的大小 - 如果 size(Vector) 大于零,则用于
ChannelSftp.get(remotedir/'*.*', localdir)
下载所有文件 - 最后关闭打开的通道。
在上述过程中,大多数时候我都收到未找到文件或没有此类文件异常,并且没有下载某些文件。
谁能告诉我为什么会发生。可能是什么原因。如何解决这个问题
下面是我正在使用的代码:
ChannelSftp channelSftp = null;
try {
channelSftp = getChannelConnectionUtil().openChannel(); //SFTPConnection.getSession().openChannel("sftp");
@SuppressWarnings("rawtypes")
Vector numOfFiles = channelSftp.ls(ftpDir+"/*.*");
if(numOfFiles.size() > 0){
channelSftp.get(ftpDir+"/*.*",localDir); // Here I am getting error
}
} catch (Exception e) {
e.printStackTrace();
} finally {
getChannelConnectionUtil().disconnectChannel(channelSftp);
}