我正在尝试使用jsch库将文件填充到远程服务器。目录结构类似于'/ home / myname / batch_run_dt = 20180706 / batchid = P20180706001 / *'因此,基本目录batch_run_dt包含多个子目录(batchid = P20180706 *),此外还有子目录。该结构将以类似的方式在远程服务器中维护。我正在使用下面的代码来实现此功能。 public class Runner{ public static void main(String[] args) throws FileNotFoundException, IOException, SQLException, JSchException { Date todaydate = new Date(); Calendar cal = Calendar.getInstance(); cal.setTime(todaydate); cal.add(Calendar.DAY_OF_MONTH,-1); SimpleDateFormat ft = new SimpleDateFormat("yyyyMMdd"); String date = ft.format(cal.getTime()); logger.info("date :: " + date); // starting the process String partition = "batch_run_dt=" + date; getData(partition);} public static void getData(String partition) throws JSchException { logger.info("Starting download data "); // get the destination location String destLoc = "/home/myname/" + partition; // get source location from data needs to import through sftp String srcLoc = "/home/myname/" + partition; download(partition, prop, destLoc, srcLoc); logger.info("Finished download prov data ");}public static void download(String partition, Properties prop, String destLoc, String srcLoc) throws JSchException { // creaating a sesssion for jsch Session session = NonProdRunner.createjschsession("username", "password", "host"); // creating a channel from session Channel channel = session.openChannel("sftp"); channel.connect(); // creating sftp channel to connect 但是在第一个子文件夹加载后,在sftp中出现异常时出现错误:No such file。不确定我在这里缺少什么,请帮助解决此问题。
1 回答
墨色风雨
TA贡献1853条经验 获得超6个赞
因为使用了,ls *
您将获得文件和文件夹,然后将它们用于cd filename
。
可能性:
这是一个文件
用户没有正确的权利
检查文档以确认问题:
SftpException-如果命名路径未指示目录,用户无法访问该目录或发生其他问题。
另一个可能的问题是,如果您尝试移动到类似以下的文件夹中:
cd /root/folder*
该结构提出了多个结果:
/root/folderA /root/folderB
由于该命令可以赋予result:folderA
和folderB
,因此您将获得一个异常:
Exception in sftp:/root/folder* is not unique:
添加回答
举报
0/150
提交
取消