当前位置 主页 > 行业资讯 >

    sftp,sftp怎么判断文件夹是否存在

    栏目:行业资讯 时间:2021-08-14 14:07

           IIS7批量FTP管理功能说明:
           1、可批量导入,导出FTP信息
           2、其他ftp工具有的功能,我们也有
           3、特色功能:可以定时上传下载
           4、数据信息列表化、一眼就能知道那个是那个
           5、批量连接标签页式切换方便快捷
           6、7大连接模式更多好的兼容
           7、内嵌编辑器有效解决普通txt记事本乱码
           8、锁屏功能当程序有规定时间内没人操作,则自动锁程序。输入密码才可以正常操作
            本产品适用于:懒得记录FTP信息和有批量定时备份,上传下载的运维或站长。
           下载地址:http://ftp.iis7.com/
           图片:
           
    public boolean isExistDir(String path,ChannelSftp sftp){
            boolean  isExist=false;
            try {
                SftpATTRS sftpATTRS = sftp.lstat(path);
                isExist = true;
                return sftpATTRS.isDir();
            } catch (Exception e) {
                if (e.getMessage().toLowerCase().equals("no such file")) {
                    isExist = false;
                }
            }
            return isExist;
     
        }

    package com.iot.crm.common.util;
     
    import com.jcraft.jsch.*;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
     
    import java.io.*;
    import java.util.Properties;
     
     
    public class SftpUtils {
        
        final Logger logger = LoggerFactory.getLogger(SftpUtils.class);
     
        protected String host;
        protected int port;
        protected String username;
        protected String password;
        Session sshSession = null ;
     
        /**
         * @param host ip
         * @param port 端口
         * @param username 账号
         * @param password 密码
         */
        public SftpUtils(String host, int port, String username, String password) {
            set(host, port, username, password);
        }
     
        public void set(String host, int port, String username, String password) {
            this.host = host;
            this.port = port;
            this.username = username;
            this.password = password;
        }
     
        public Session getSession() {
            //Session sshSession = null;
            try {
                JSch jsch = new JSch();
                jsch.getSession(this.username, this.host, this.port);
                sshSession = jsch.getSession(this.username, this.host, this.port);
                System.out.println("Session created.");
                sshSession.setPassword(this.password);
                Properties sshConfig = new Properties();
                sshConfig.put("StrictHostKeyChecking", "no");
                sshSession.setConfig(sshConfig);
                sshSession.connect();
                System.out.println("Session connected.");
                System.out.println("Opening Channel.");
            } catch (Exception e) {
                e.printStackTrace();
            }
            return sshSession;
        }
        /**
        /**
         * 链接linux
         */
        public ChannelSftp connectSftp() {
            getSession();
            ChannelSftp sftp = null;
            try {
                System.out.println("Session connected.");
                System.out.println("Opening Channel.");
                Channel channel = sshSession.openChannel("sftp");
                channel.connect();
                sftp = (ChannelSftp) channel;
            } catch (Exception e) {
                e.printStackTrace();
                sftp = null;
            }
            return sftp;
        }
     
        public void exec(Session session,String command) {
            ChannelExec channelExec = null;
            try {
                System.out.println("Session connected.");
                System.out.println("Opening Channel.");
                Channel channel = session.openChannel("exec");
                channelExec = (ChannelExec) channel;
                channelExec.setCommand(command);
                channelExec.connect();
                channelExec.setInputStream(null);
                InputStream in = channelExec.getInputStream();
                BufferedReader reader = new BufferedReader(new InputStreamReader(in));
                String buf = null;
                while ((buf = reader.readLine()) != null)
                {
                    System.out.println(buf);
                }
                reader.close();
            } catch (Exception e) {
                e.printStackTrace();
                channelExec = null;
            }finally {
                channelExec.disconnect();
            }
        }
     
     
     
        /**
         * linux上传文件
         */
        public void upload(String directory, File file) {
            ChannelSftp sftp = connectSftp();
            try {
                if (null != sftp) {
                    sftp.cd(directory);
                    logger.info("cd {}", directory);
                    FileInputStream stream = new FileInputStream(file);
                    try {
                        sftp.put(stream, file.getName());
                    } catch (Exception e) {
                        logger.error("upload error", e);
                    } finally {
                        stream.close();
                    }
                }
            } catch (Exception e) {
                logger.error("upload:" + host, e);
            } finally {
                if (sftp != null) {
                    sftp.disconnect();
                    sftp.exit();
                }
                sshSession.disconnect();
            }
        }
     
        /**
         * linux下载文件
         */
        public void get(String remotePath,String remoteFilename,String localFileName) {
            ChannelSftp sftp = connectSftp();
            File file=null;
            OutputStream output=null;
            try {
                if (null != sftp) {
                     file = new File(localFileName);
                    if (file.exists()){
                        file.delete();
                    }
                    file.createNewFile();
                    sftp.cd(remotePath);
     
                    output=new FileOutputStream(file);
                    try {
                        logger.info("Start download file:{},the arm file name:{}",remotePath+remoteFilename,localFileName);
                        sftp.get(remoteFilename, output);
                        logger.info("down {} suc", remotePath+remoteFilename);
                    } catch (Exception e) {
                        logger.error("download error", e);
                    } finally {
                        output.close();
                    }
                }
            } catch (Exception e) {
                logger.error("down error :" , e);
            } finally {
                close(sftp);
            }
        }
     
        protected void close(ChannelSftp sftp) {
            if (sftp != null) {
                sftp.disconnect();
                sftp.exit();
            }
            if (sshSession != null) {
                sshSession.disconnect();
            }
        }
     
       
     
    }