资源简介
java实现连接登录Ftp,下载Ftp指定文件夹下的所有文件,并解压所有压缩文件,同时支持对指定文件夹进行文件压缩
代码片段和文件信息
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\.settings\org.eclipse.jdt.core.prefs
目录 0 2018-12-13 16:59 Ftp\bin\
文件 5493 2018-12-13 16:58 Ftp\bin\FtpTools.class
文件 1805 2018-01-09 10:11 Ftp\bin\log4j.properties
文件 1959 2018-12-13 16:58 Ftp\bin\TestFileUtil.class
文件 4472 2018-12-13 16:41 Ftp\bin\Ziputil.class
文件 4327 2018-12-13 16:20 Ftp\bin\Ziputil2.class
目录 0 2018-12-13 16:59 Ftp\lib\
文件 1323005 2018-12-13 00:23 Ftp\lib\ant.jar
文件 307410 2018-12-13 00:23 Ftp\lib\commons-net-3.6.jar
文件 481535 2018-01-08 18:57 Ftp\lib\log4j-1.2.16.jar
文件 2036195 2018-12-13 00:23 Ftp\lib\org.apache.tools.ant-1.9.7.jar
文件 43926 2018-12-13 00:23 Ftp\lib\slf4j-api-1.8.0-beta0.jar
文件 2957 2018-12-13 15:49 Ftp\log.log
目录 0 2018-12-13 16:59 Ftp\src\
文件 4816 2018-12-13 16:58 Ftp\src\FtpTools.java
文件 1805 2018-01-09 10:11 Ftp\src\log4j.properties
文件 845 2018-12-13 16:58 Ftp\src\TestFileUtil.java
文件 4338 2018-12-13 16:41 Ftp\src\Ziputil.java
文件 3243 2018-12-13 16:20 Ftp\src\Ziputil2.java
相关资源
- java 毕业设计 进销存管理系统 源码
- java图片浏览器跨平台运行程序与源码
- 基于java的在线考试系统-毕业设计
- 微博系统(Java源码,servlet+jsp),适
- java串口通信全套完整代码-导入eclip
- jsonarray所必需的6个jar包.rar
- 三角网构TIN生成算法,Java语言实现
- java代码编写将excel数据导入到mysql数据
- Java写的cmm词法分析器源代码及javacc学
- JAVA JSP公司财务管理系统 源代码 论文
- JSP+MYSQL旅行社管理信息系统
- 推荐算法的JAVA实现
- 基于Java的酒店管理系统源码(毕业设
- java-图片识别 图片比较
- android毕业设计
- java23种设计模式+23个实例demo
- java Socket发送/接受报文
- JAVA828436
- java界面美化 提供多套皮肤直接使用
- 在线聊天系统(java代码)
- 基于Java的图书管理系统807185
- java中实现将页面数据导入Excel中
- java 企业销售管理系统
- java做的聊天系统(包括正规课程设计
- Java编写的qq聊天室
- 商店商品管理系统 JAVA写的 有界面
- JAVA开发聊天室程序
- 在linux系统下用java执行系统命令实例
- java期末考试试题两套(答案) 选择(
- JAVA3D编程示例(建模、交互)
川公网安备 51152502000135号
评论
共有 条评论