JAVA SFTP

參考網頁:

http://ziyouxf.iteye.com/blog/506161

 

jar檔下載點

http://findjar.com/index.x;jsessionid=1B0A97BB06FD872CA68A7AFAEC19261E?query=jsch+

 

選擇:jsch-0.1.16.jar

http://findjar.com/jar/jsch/jsch/0.1.16/jsch-0.1.16.jar.html

 

public class SFTP {
    public String error_message ="";
    public boolean is_error =false;
    /**
     * 連接sftp服務器 * @param host主機 * @param port端口 * @param username用戶名 * @param password密碼 * @return
     */
    public ChannelSftp connect(String host, int port, String username, String password) {
        ChannelSftp sftp = null;
        try {
            JSch jsch = new JSch();
            jsch.getSession(username, host, port);
            Session sshSession = jsch.getSession(username, host, port);
            System.out.println("Session created. ");
            sshSession.setPassword(password);
            Properties sshConfig = new Properties();
            sshConfig.put("StrictHostKeyChecking", "no");
            sshSession.setConfig(sshConfig);
            sshSession.connect();
            System.out.println("Session connected.");
            System.out.println("Opening Channel.");
            Channel channel = sshSession.openChannel("sftp");
            channel.connect();
            sftp = (ChannelSftp) channel;
            System.out.println("Connected to " + host + ".");
            is_error = false;
        } catch (Exception e) {
            this.error_message =  OtherTool.getTool().getErrorStackMessage(e);
            this.is_error = true;
            e.printStackTrace();
        }
        return sftp;
    }
 
    /**
     * 上傳文件 * @param directory上傳的目錄 * @param uploadFile要上傳的文件 * @param sftp
     */
    public void upload(String directory, String uploadFile, ChannelSftp sftp) {
        try {
            this.error_message = "";
            sftp.cd(directory);
            File file = new File(uploadFile);
            FileInputStream fileInputStream = new FileInputStream(file);
            sftp.put(new FileInputStream(file), file.getName());
            fileInputStream.close();
            fileInputStream=null;
            file =null;
            is_error = false;
        } catch (Exception e) {
            this.error_message =e.toString();
            this.is_error = true;
            e.printStackTrace();
        }
    }
 
    /**
     * 下載文件 * @param directory下載目錄 * @param downloadFile下載的文件 * @param saveFile存在本地的路徑 * @param sftp
     */
    public void download(String directory, String downloadFile, String saveFile, ChannelSftp sftp) {
        try {
            this.error_message = "";
            sftp.cd(directory);
            File file = new File(saveFile);
            FileOutputStream fileOutputStream =new FileOutputStream(file);
            sftp.get(downloadFile, fileOutputStream );
            fileOutputStream.close();
            fileOutputStream=null;
            file =null;
            is_error = false;
        } catch (Exception e) {
            this.error_message = e.toString();
            this.is_error = true;
            e.printStackTrace();
        }
    }
 
    /**
     * 刪除文件 * @param directory要刪除文件所在目錄 * @param deleteFile要刪除的文件 * @param sftp
     */
    public void delete(String directory, String deleteFile, ChannelSftp sftp) {
        try {
            this.error_message = "";
            sftp.cd(directory);
            sftp.rm(deleteFile);
            is_error = false;
        } catch (Exception e) {
            this.error_message = e.toString();
            this.is_error = true;
            e.printStackTrace();
        }
    }
 
    /**
     * 列出目錄下的文件 * @param directory要列出的目錄 * @param sftp * @return * @throws SftpException
     */
    public Vector listFiles(String directory, ChannelSftp sftp) throws SftpException {
        return sftp.ls(directory);
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值