java 从远处服务器下载文件

11 篇文章 0 订阅

需要jar包:
ganymed-ssh2-build210.jar (放在需要跑的项目中)  
jad.exe(在eclipse中跑的话,需要设置路径,windows-preferences-java-jadclipse中的path to decompiler设置为jad.exe的放置目录)

---------------controller

public static Connection conn = null;  
boolean ifLogin=login();                    //能否登陆
String path="/ciod/autodev/bin/aa.out";    //服务器目录下的文件
String localPath="d://tmp1//";             //本地目录,没有需要新建
copyFile(conn,path,localPath);	           //服务器下载到本地
conn.close();

---------具体方法

//登陆远程
public boolean login(){
		//创建远程连接,默认连接端口为22,如果不使用默认,可以使用方法
		//new Connection(ip, port)创建对象
		conn = new Connection("111.1.1.11");        
		try {
			//连接远程服务器
			conn.connect();
			//使用用户名和密码登录
	        return conn.authenticateWithPassword("user", "12345");
		} catch (IOException e) {   
			System.err.printf("用户%s密码%s登录服务器%s失败!", "user", "12345", "111.1.1.11");
			e.printStackTrace();
	  }
	  return false;
	}
	

-----下载


	public void copyFile(Connection conn, String fileName,String localPath){
		SCPClient sc = new SCPClient(conn);
		try {
			sc.get(fileName,localPath"); 
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

---删除

/**
 * 在远程LINUX服务器上,在指定目录下,删除指定文件
 * @param[in] fileName 文件名
 * @param[in] remotePath 远程主机的指定目录
 * @return
 */
public void delFile(String remotePath, String fileName){
	try {
		SFTPv3Client sft = new SFTPv3Client(conn);
		//获取远程目录下文件列表
		Vector<?> v = sft.ls(remotePath);
   
		for(int i=0;i<v.size();i++){
			SFTPv3DirectoryEntry s = new SFTPv3DirectoryEntry();
			s = (SFTPv3DirectoryEntry) v.get(i);
			//判断列表中文件是否与指定文件名相同
			if(s.filename.equals(fileName)){
				//rm()方法中,须是文件绝对路径+文件名称
				sft.rm(remotePath + s.filename);
			}
		sft.close();
	} catch (Exception e1) {
		e1.printStackTrace();
	}
}

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值