packagecom.moy.demo.common.utils;importorg.apache.commons.lang3.StringUtils;importorg.apache.commons.net.ftp.FTP;importorg.apache.commons.net.ftp.FTPClient;importorg.apache.commons.net.ftp.FTPFile;importorg.apache.commons.net.ftp.FTPReply;import java.io.*;importjava.net.UnknownHostException;importjava.text.SimpleDateFormat;importjava.util.ArrayList;importjava.util.Date;importjava.util.List;/***
Description: [ftp工具类]
* Created on 2018/6/4
*
*@author叶向阳
*@version1.0*/
public classFtpCli {private static final String DEFAULT_CHARSET = "UTF-8";private static final int DEFAULT_TIMEOUT = 60 * 1000;private static final String DAILY_FILE_PATH = "dailyFilePath";private finalString host;private final intport;private finalString username;private finalString password;privateFTPClient ftpClient;private volatileString ftpBasePath;privateFtpCli(String host, String username, String password) {this(host, 21, username, password, DEFAULT_CHARSET);
setTimeout(DEFAULT_TIMEOUT, DEFAULT_TIMEOUT, DEFAULT_TIMEOUT);
}private FtpCli(String host, intport, String username, String password, String charset) {
ftpClient= newFTPClient();
ftpClient.setControlEncoding(charset);this.host = StringUtils.isEmpty(host) ? "localhost": host;this.port = (port <= 0) ? 21: port;this.username = StringUtils.isEmpty(username) ? "anonymous": username;this.password =password;
}/***
Description:[创建默认的ftp客户端]
* Created on 2018/6/5
*
*@paramhost 主机名或者ip地址
*@paramusername ftp用户名
*@parampassword ftp密码
*@returncom.moy.demo.common.utils.FtpCli
*@author叶向阳*/
public staticFtpCli createFtpCli(String host, String username, String password) {return newFtpCli(host, username, password);
}/***
Description:[创建自定义属性的ftp客户端]
* Created on 2018/6/5
*
*@paramhost 主机名或者ip地址
*@paramport ftp端口
*@paramusername ftp用户名
*@parampassword ftp密码
*@paramcharset 字符集
*@returncom.moy.demo.common.utils.FtpCli
*@author叶向阳*/
public static FtpCli createFtpCli(String host, intport, String username, String password, String charset) {return newFtpCli(host, port, username, password, charset);
}/***
Description:[设置超时时间]
* Created on 2018/6/5
*
*@paramdefaultTimeout 超时时间
*@paramconnectTimeout 超时时间
*@paramdataTimeout 超时时间
*@author叶向阳*/
public void setTimeout(int defaultTimeout, int connectTimeout, intdataTimeout) {
ftpClient.setDefaultTimeout(defaultTimeout);
ftpClient.setConnectTimeout(connectTimeout);
ftpClient.setDataTimeout(dataTimeout);
}/***
Description:[连接到ftp]
* Created on 2018/6/5
*
*@author叶向阳*/
public void connect() throwsIOException {try{
ftpClient.connect(host, port);
}catch(UnknownHostException e) {throw new IOException("Can't find FTP se