使用java操作FTP服務器上的文件

最近的工作中,需要定時操作FTP服務器上的文件,用到了FTPClient

記錄並分享一下使用心得

首先當然是引包   commons-net-2.0.jar

這樣你就可以使用FTPClient這個類創建用於連接FTP服務器的對象了

具體方法見代碼:

     

FTPClient ftpClient = new FTPClient();
	private String serverIP;
	private Integer	port;
	private String username;
	private String password;

 以下是連接到FTP服務器的代碼,返回true   就代表ftpClient已經成功連接到FTP服務器了,也就是可以操作FTP服務器上的文件了

public boolean getReady(){
		boolean succeed = false;
		
		try {
			int replyCode;
			ftpClient.connect(this.serverIP, this.port);
			replyCode = ftpClient.getReplyCode();
			if(FTPReply.isPositiveCompletion(replyCode)) {
				succeed = ftpClient.login(this.username, this.password);
			}
			if(!succeed){
				log.error("ftp login error:"+ftpClient.getReplyString());
			}else{
				log.debug("FTP Server "+ this.serverIP +" is Connected......");
			}		
		} catch (Exception exp) {
			log.error("connect ftp server error:"+this.serverIP+" "+exp.getMessage());
			 if(ftpClient.isConnected()){
				 this.disConnect();
			 }
		} 
		return succeed;
	}

 下面再來兩個操作文件的方法做演示

獲取文件列表(當然返回的是文件名集合)

public List<String> list(String filePath) {
		FTPFile[] files;
		List<String> result = new ArrayList<String>();
		if (this.getReady()) {
			try {
				files = ftpClient.listFiles(filePath);
				for (FTPFile file : files) {
				
					if (file.isFile()) {
						result.add(file.getName());
					}

				}

			} catch (IOException e) {
				log.error("gen file list error:" + filePath + "\r\n"
						+ e.getMessage());
			}
		}
		return result;

	}

 刪除FTP指定文件(小心操作哦)

/**
	 * 刪除指定文件
	 * @param pathname
	 * @return
	 * @throws IOException
	 */
	public void deleteFile(String pathname) {
		try {
			if(this.getReady()){
				this.ftpClient.deleteFile(pathname);
				log.info("成功刪除數據========"+pathname);
			}
		} catch (Exception e) {
			log.error("非法參數路徑[" + pathname + "]", e);
		}
	}

 

以上只做簡單介紹,希望對初次使用的有引導作用

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章