最近的工作中,需要定时操作FTP服务器上的文件,用到了FTPClient
记录并分享一下使用心得
首先当然是引包 ? commons-net-2.0.jar
这样你就可以使用FTPClient这个类创建用于连接FTP服务器的对象了
具体方法见代码:
? ? ?
class="java">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); } }
?
以上只做简单介绍,希望对初次使用的有引导作用
?
?