package com.neu.es;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.util.Properties;import java.util.Vector;import com.jcraft.jsch.Channel;import com.jcraft.jsch.ChannelSftp;import com.jcraft.jsch.JSch;import com.jcraft.jsch.Session;import com.jcraft.jsch.SftpException;/** * * 项目名称:ed_system * 类名称:NasUtils * 类描述: * 创建人:pan.cx * 创建时间:2015年9月16日 上午9:31:30 * 修改人:pan.cx * 修改时间:2015年9月16日 上午9:31:30 * 修改备注: * @version * */public class NasUtils { public static void main(String[] args) throws IOException { NasUtils client = new NasUtils(); ChannelSftp sftp1 = client.connect("192.168.12.104", 22, "root","1qaz@WSX"); System.err.println(sftp1); client.upload("/var/", "D://person1.xml", sftp1); //client.download("/var/", "person1.xml", "D://person12.xml", sftp1); boolean closed = sftp1.isClosed(); System.err.println(closed); } /** * 连接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(); Channel channel = sshSession.openChannel("sftp"); channel.connect(); sftp = (ChannelSftp) channel; System.out.println("登录成功: Connected to " + host + "."); } catch (Exception e) { } return sftp; } /** * 上传文件 * @param directory 上传的目录 * @param uploadFile 要上传的文件 * @param sftp */ public void upload(String directory, String uploadFile, ChannelSftp sftp) { try { sftp.cd(directory); File file = new File(uploadFile); sftp.put(new FileInputStream(file), file.getName()); System.out.println("上传成功!"); } catch (Exception e) { e.printStackTrace(); } finally { if(sftp!=null){ sftp.quit(); } } } /** * 下载文件 * @param directory 下载目录 * @param downloadFile 下载的文件 * @param saveFile 存在本地的路径 * @param sftp */ public void download(String directory, String downloadFile, String saveFile, ChannelSftp sftp) { try { sftp.cd(directory); File file = new File(saveFile); sftp.get(downloadFile, new FileOutputStream(file)); } catch (Exception e) { e.printStackTrace(); } finally { if(sftp!=null){ sftp.quit(); } } } /** * 删除文件 * @param directory 要删除文件所在目录 * @param deleteFile 要删除的文件 * @param sftp */ public void delete(String directory, String deleteFile, ChannelSftp sftp) { try { sftp.cd(directory); sftp.rm(deleteFile); } catch (Exception e) { e.printStackTrace(); } finally { if(sftp!=null){ sftp.quit(); } } } /** * 列出目录下的文件 * @param directory 要列出的目录 * @param sftp * @return * @throws SftpException */ public Vector listFiles(String directory, ChannelSftp sftp) throws SftpException { return sftp.ls(directory); }}