SFTP ChannelSftp 方式文件下载

本文介绍了如何使用Java的JSch库通过SFTP连接下载文件。示例代码展示了如何建立SSH会话,打开SFTP通道,查找并下载指定的文件到本地,并提供了针对Linux系统的路径处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   public static ChannelSftp connect(String username,String password,String hostname,String remoteDir,int port){

        //remoteDir远程目录 文件下载的目录

        ChannelSftp sftp =null;

        Session sshSession=null;

        String loaclpacth="d:\\download ";//下载到本来路径

        String fileName=" ";//文件名

        String zipName=" ";//可以通过参数传递过来

      try{

       JSch jsch=new Jsch();

       sshSession =jsch.getSession(username,hostname,port);

       sshSession.setPassword(password);

       Properties sshConfig=new Properties();

       sshConfig.put("StrictHostKeyChecking","no");

       sshSession.setConfig(sshConfig);

       sshSession.connect();

      Channel channle=sshSession.openChannel("sftp");

      channel.connect();

       sftp=(Channel)channel;

       //下面这段是针对linux系统才用的,window 可以省略一部分

      Voctor list = sftp.ls(remoteDir);

     String listName="";

     File remoteDirFile=null;

     for(int i=0;i<list.size();i++){

         listName=list.get(i).toString();

         String [] arr=listName.split(" ");

       if(arr !=null && arr[arr.length-1].equals(zipName){

          flag=true;

         break;

        }

      }

      if(flag){

        String unzipUrl=  remoteDir+"/aaa.csv";//远程下载地址跟文件名

        SftpATTRS attr=sftp.stat(unzipUrl);

       long filezie=attr.getSize();

       String fileName=loaclpacth+"/aaa.csv";//下载到本地路径

       OutputStream out = new FileOutputStream(fileName);

      sftp.get(unzipUrl,fileName);//下载 unzipUrl远程下载地址 下载到本地fileName;

      //在解压zip文件。。。。。

     unzip(filename,zip文件路径)

     }

     }catch(exception e){


    }finally{

     sftp.quit();

    sshSession.disconnect();

  }

      return sftp;


}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值