SFTP client实例

依赖jar包:jsch-0.1.43.jar

下载地址http://www.jcraft.com/jsch/


[java]  view plain  copy
  1. package com.sftp;  
  2.   
  3. /* 
  4.  * Created on 2009-9-14 
  5.  * Copyright 2009 by www.xfok.net. All Rights Reserved 
  6.  * 
  7.  */  
  8.   
  9. import java.io.File;  
  10. import java.io.FileInputStream;  
  11. import java.io.FileOutputStream;  
  12. import java.util.Properties;  
  13. import java.util.Vector;  
  14.   
  15. import com.jcraft.jsch.Channel;  
  16. import com.jcraft.jsch.ChannelSftp;  
  17. import com.jcraft.jsch.ChannelSftp.LsEntry;  
  18. import com.jcraft.jsch.JSch;  
  19. import com.jcraft.jsch.Session;  
  20. import com.jcraft.jsch.SftpException;  
  21.   
  22. /** 
  23.  * @author YangHua 
  24.  * 转载请注明出处:http://www.xfok.net/2009/10/124485.html 
  25.  */  
  26. public class SFTPUtils {  
  27.   
  28. //  private static final String host = "192.168.1.168";  
  29. //  private static final  int port = 22;  
  30. //  private static final  String username = "tmux";  
  31. //  private static final  String password = "tmux";  
  32. //  private static final  String directory = "/data/backup/168";  
  33. //    
  34. //  private static final  String downloadFile = "xxx.txt";  
  35. //  private static final  String uploadFile = "d:/cc.jpg";  
  36. //  private static final  String saveFile = "e:/cc.jpg";  
  37. //  private static final  String deleteFile = "cc.jpg";  
  38.   
  39.     /** 
  40.      * 连接sftp服务器 
  41.      * @param host 主机 
  42.      * @param port 端口 
  43.      * @param username 用户名 
  44.      * @param password 密码 
  45.      * @return 
  46.      */  
  47.     public ChannelSftp connect(String host, int port, String username,  
  48.             String password) {  
  49.         ChannelSftp sftp = null;  
  50.         try {  
  51.             JSch jsch = new JSch();  
  52.             jsch.getSession(username, host, port);  
  53.             Session sshSession = jsch.getSession(username, host, port);  
  54.             System.out.println("Session created.");  
  55.             sshSession.setPassword(password);  
  56.             Properties sshConfig = new Properties();  
  57.             sshConfig.put("StrictHostKeyChecking""no");  
  58.             sshSession.setConfig(sshConfig);  
  59.             sshSession.connect();  
  60.             System.out.println("Session connected.");  
  61.             System.out.println("Opening Channel.");  
  62.             Channel channel = sshSession.openChannel("sftp");  
  63.             channel.connect();  
  64.             sftp = (ChannelSftp) channel;  
  65.             System.out.println("Connected to " + host + ".");  
  66.         } catch (Exception e) {  
  67.             e.printStackTrace() ;  
  68.         }  
  69.         return sftp;  
  70.     }  
  71.   
  72.     /** 
  73.      * 上传文件 
  74.      * @param directory 上传的目录 
  75.      * @param uploadFile 要上传的文件 
  76.      * @param sftp 
  77.      */  
  78.     public void upload(String directory, String uploadFile, ChannelSftp sftp) {  
  79.         try {  
  80.             sftp.cd(directory);  
  81.             File file=new File(uploadFile);  
  82.             sftp.put(new FileInputStream(file), file.getName());  
  83.         } catch (Exception e) {  
  84.             e.printStackTrace();  
  85.         }  
  86.     }  
  87.   
  88.     /** 
  89.      * 下载文件 
  90.      * @param directory 下载目录 
  91.      * @param downloadFile 下载的文件 
  92.      * @param saveFile 存在本地的路径 
  93.      * @param sftp 
  94.      */  
  95.     public void download(String directory, String downloadFile,String saveFile, ChannelSftp sftp) {  
  96.         try {  
  97.             sftp.cd(directory);  
  98.             File file=new File(saveFile);  
  99.             sftp.get(downloadFile, new FileOutputStream(file));  
  100.         } catch (Exception e) {  
  101.             e.printStackTrace();  
  102.         }  
  103.     }  
  104.   
  105.     /** 
  106.      * 删除文件 
  107.      * @param directory 要删除文件所在目录 
  108.      * @param deleteFile 要删除的文件 
  109.      * @param sftp 
  110.      */  
  111.     public void delete(String directory, String deleteFile, ChannelSftp sftp) {  
  112.         try {  
  113.             sftp.cd(directory);  
  114.             sftp.rm(deleteFile);  
  115.         } catch (Exception e) {  
  116.             e.printStackTrace();  
  117.         }  
  118.     }  
  119.   
  120.     /** 
  121.      * 列出目录下的文件 
  122.      * @param directory 要列出的目录 
  123.      * @param sftp 
  124.      * @return 
  125.      * @throws SftpException 
  126.      */    
  127.     @SuppressWarnings("unchecked")  
  128.     public Vector<LsEntry> listFiles(String directory, ChannelSftp sftp) throws SftpException{  
  129.         return sftp.ls(directory);  
  130.     }  
  131.   
  132.     public static void main(String[] args) throws Exception {  
  133. //      MySFTP sf = new MySFTP();  
  134. //      ChannelSftp  sftp = sf.connect(host, port, username, password); //获取连接  
  135. //  
  136. //      //sf.upload(directory, uploadFile, sftp);   //上传文件  
  137. //  
  138. //      sf.download(directory, downloadFile, saveFile, sftp);  //删除文件  
  139.   
  140.         //  sf.delete(directory, deleteFile, sftp); //删除文件  
  141.   
  142.         //      Vector<LsEntry> files = sf.listFiles(directory, sftp);        //查看文件列表  
  143.         //      for (LsEntry file : files) {    
  144.         //          System.out.println(file.getFilename());  
  145.         //      }  
  146.   
  147.     }  
  148. }  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
链接到sFTP客户端谷歌浏览器应用程序 访问您的本地/远程FTP服务器(包括您的NAS驱动器),本地服务器,VPS,专用服务器,云服务器或共享主机。 我们现在已经发布了适用于MAC,WINDOWS和LINUX的本地应用程序,请访问我们的网站: http://www.sftpclient.io/download ------------------------------------------ sFTP客户端是简单的,它是建立在谷歌浏览器/ Chrome操作系统打包的应用程序界面,使应用程序快速和响应。其中一些功能包括一个FTP / SFTP帐户管理器,用于存储和管理最常用和最喜欢的FTP / SFTP连接,只需点击一下,文件/文件夹队列即可查看当前正在上传/下载的项目,强大的文本编辑器(所以你甚至不需要额外的程序来修改你的代码),等等... 看看下面的sFTP客户端应用程序的所有功能。 特征: ========= - 标准的FTP连接 - SSH over File Transfer Protocol(sFTP)连接 - 用于SSH连接的权限密钥文件(SSH密钥 - RSA) - FTP / SFTP被动模式 - 连接到远程(外部)和本地(内部)FTP / SFTP / SSH服务器。 - 更改文件/文件夹权限(通过复选框或值:例如777) - 上传/下载多个文件和文件夹 - 快速连接 - 编辑器选项:选项卡式文件,自定义 - 拖放文件/文件夹 - 管理FTP / SFTP / SSH账户(使用谷歌浏览器本地存储和安全密码加密存储) - 强大的文本编辑器,语法高亮(保存,自动保存和自动上传功能) - 键盘选择(向上,向下,进入(回车)和退出(退格)的目录,包括搜索能力,通过键盘上键入快速访问文件/文件夹) - 导入帐户:sFTP客户端 - 出口帐户 - 重命名和删除文件 - 创建新的文件/目录 - 刷新本地和远程列表 - 对列进行排序和调整大小 - 多选文件和文件夹 - 按路径浏览本地和远程文件夹 - 本地目录:选择每个连接的默认本地目录,假设为全局 - 快速帐户菜单(一键从您保存的列表中打开FTP / SFTP / SSH帐户连接) - 多个FTP / SFTP / SSH帐户连接(如果您打开了大量连接,则滚动选项卡) - 关闭连接(断开与服务器的连接并删除所有活动) - 控制台日志(显示所有FTP / SFTP / SSH活动日志) - 传输队列(排队的文件和文件夹,失败的文件和文件夹,完成的文件和文件夹) - 新的Google Sockets API - 远程和本地菜单 - 连接并列出UNIX和MS-DOS目录 - 复制网址到剪贴板 - 10最近的连接 - 保持连接 - 主密码登录(保持所有的FTP连接安全,1登录) - 同步浏览 更多的功能和功能来免费未来的更新! 支持语言:English (UK)

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值