jsch下载文件的两个注意点

时间:2022-07-09 09:55:40

1.关于sftp文件上传和下载的网上很多code,此处就不多写了。主要记录下工作中遇到的两个问题需要多注意。

1.判断sftp远程文件是否存在,通过异常捕获来判断该文件是否存在,存在返回SftpATTRS对象。

try{

String filename = "/home/omc/ylong/sftp/INTPahcfg.tar.gz";
        SftpATTRS attr = chSftp.stat(filename);
        long fileSize = attr.getSize();

}catch(Exception e){}

2.查询sftp远程文件列表名称,根据文件下载列表来动态下载。

LsEntry 可以认为是文件服务器上的文件条目信息,把包含文件或者目录相关属性 。ls命令返回的Vector中的就是LsEntry对象列表。

Vector<LsEntry> list = null;
         try {
             list = channel.ls(channel.pwd());
         } catch (SftpException e) {
             logger.error("can not list directory",e);
             return false;
         }
         
         for(LsEntry entry : list){
             String fileName = entry.getFilename();
             if(!fileName.equals(".") && !fileName.equals("..")){
                 if(entry.getAttrs().isDir()){
                     delDir(fileName);
                 } else {
                     delFile(fileName);
                 }
             }
         }