java实现连接登录Ftp,下载Ftp指定文件夹下的所有文件,并解压所有压缩文件,同时支持对指定文件夹进行文件压缩
代码片段和文件信息
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-12-13 16:59 Ftp
文件 613 2018-12-13 00:27 Ftp.classpath
文件 379 2018-12-13 00:22 Ftp.project
目录 0 2018-12-13 16:59 Ftp.settings
文件 598 2018-12-13 00:22 Ftp.settingsorg.eclipse.jdt.core.prefs
目录 0 2018-12-13 16:59 Ftpin
文件 5493 2018-12-13 16:58 FtpinFtpTools.class
文件 1805 2018-01-09 10:11 Ftpinlog4j.properties
文件 1959 2018-12-13 16:58 FtpinTestFileUtil.class
文件 4472 2018-12-13 16:41 Ftpiniputil.class
文件 4327 2018-12-13 16:20 Ftpiniputil2.class
目录 0 2018-12-13 16:59 Ftplib
文件 1323005 2018-12-13 00:23 Ftplibant.jar
文件 307410 2018-12-13 00:23 Ftplibcommons-net-3.6.jar
文件 481535 2018-01-08 18:57 Ftpliblog4j-1.2.16.jar
文件 2036195 2018-12-13 00:23 Ftpliborg.apache.tools.ant-1.9.7.jar
文件 43926 2018-12-13 00:23 Ftplibslf4j-api-1.8.0-beta0.jar
文件 2957 2018-12-13 15:49 Ftplog.log
目录 0 2018-12-13 16:59 Ftpsrc
文件 4816 2018-12-13 16:58 FtpsrcFtpTools.java
文件 1805 2018-01-09 10:11 Ftpsrclog4j.properties
文件 845 2018-12-13 16:58 FtpsrcTestFileUtil.java
文件 4338 2018-12-13 16:41 Ftpsrciputil.java
文件 3243 2018-12-13 16:20 Ftpsrciputil2.java
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.SocketException;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPReply;
import org.apache.commons.net.nntp.NewGroupsOrNewsQuery;
import org.apache.log4j.Logger;
/**
* 采用的是apache commons-net架包中的ftp工具类实现的
*
* @author shi
*
*/
public class FtpTools {
private String username;
private String password;
private String ftpHostName;
private int port = 21;
private FTPClient ftpClient = new FTPClient();
private FileOutputStream fos = null;
public List list = new ArrayList();
private Logger logger = Logger.getLogger(FtpTools.class);
public FtpTools(String username String password String ftpHostName int port) {
super();
this.username = username;
this.password = password;
this.ftpHostName = ftpHostName;
this.port = port;
}
/**
* 建立连接b
*/
private void connect() {
try {
logger.debug(“开始连接“);
// 连接
ftpClient.connect(ftpHostName port);
int reply = ftpClient.getReplyCode();
if (!FTPReply.isPositiveCompletion(reply)) {
ftpClient.disconnect();
}
// 登录
ftpClient.login(username password);
ftpClient.setBufferSize(256);
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
ftpClient.setControlEncoding(“utf8“);
logger.debug(“登录成功!“);
logger.debug(“开始登录!“);
} catch (SocketException e) {
logger.error(““ e);
} catch (IOException e) {
logger.error(““ e);
}
}
/**
* 关闭输入输出流
*
* @param fos
*/
private void close(FileOutputStream fos) {
try {
if (fos != null) {
fos.close();
}
ftpClient.logout();
logger.info(“退出登录“);
ftpClient.disconnect();
logger.info(“关闭连接“);
} catch (IOException e) {
logger.error(““ e);
}
}
/**
* 下载文件
*
* @param ftpFileName
* @param localDir
*/
public void down(String ftpFileName String localDir) {
connect();
downFileOrDir(ftpFileName localDir);
close(fos);
}
private void downFileOrDir(String ftpFileName String localDir) {
try {
File file = new File(ftpFileName);
File temp = new File(localDir);
if (!temp.exists()) {
temp.mkdirs();
}
// 判断是否是目录
if (isDir(ftpFileName)) {
String[] names = ftpClient.listNames();
for (int i = 0; i < names.length; i++) {
System.out.println(“---------------“+names[i] + “-------------------“);
list.add(names[i]);
if (isDir(names[i])) {
downFileOrDir(ftpFileName + ‘/‘ + names[i] localDir + File.separator + names[i]);
ftpClient.changeToParentDirectory();
} else {
File localfile = new File(localDir + File.separator + names[i]);
if (!localfile.exists()) {
fos = new FileOutputStream(localfile);
ftpClient.retrieveFile(names[i] fos);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2018-12-13 16:59 Ftp
文件 613 2018-12-13 00:27 Ftp.classpath
文件 379 2018-12-13 00:22 Ftp.project
目录 0 2018-12-13 16:59 Ftp.settings
文件 598 2018-12-13 00:22 Ftp.settingsorg.eclipse.jdt.core.prefs
目录 0 2018-12-13 16:59 Ftpin
文件 5493 2018-12-13 16:58 FtpinFtpTools.class
文件 1805 2018-01-09 10:11 Ftpinlog4j.properties
文件 1959 2018-12-13 16:58 FtpinTestFileUtil.class
文件 4472 2018-12-13 16:41 Ftpiniputil.class
文件 4327 2018-12-13 16:20 Ftpiniputil2.class
目录 0 2018-12-13 16:59 Ftplib
文件 1323005 2018-12-13 00:23 Ftplibant.jar
文件 307410 2018-12-13 00:23 Ftplibcommons-net-3.6.jar
文件 481535 2018-01-08 18:57 Ftpliblog4j-1.2.16.jar
文件 2036195 2018-12-13 00:23 Ftpliborg.apache.tools.ant-1.9.7.jar
文件 43926 2018-12-13 00:23 Ftplibslf4j-api-1.8.0-beta0.jar
文件 2957 2018-12-13 15:49 Ftplog.log
目录 0 2018-12-13 16:59 Ftpsrc
文件 4816 2018-12-13 16:58 FtpsrcFtpTools.java
文件 1805 2018-01-09 10:11 Ftpsrclog4j.properties
文件 845 2018-12-13 16:58 FtpsrcTestFileUtil.java
文件 4338 2018-12-13 16:41 Ftpsrciputil.java
文件 3243 2018-12-13 16:20 Ftpsrciputil2.java
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。
评论列表(条)