资源简介
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图书管理系统正常运行oracle数据库
- javaMail API和JAR
- 用java实现爬虫抓取网页中的表格数据
- prosys-opc-ua-java-sdk-client-server-evaluatio
- ArcEngine java开发环境搭建
- JAVA JSP旅行社管理系统(毕业设计)
- 安卓2.3系统java模拟器直装版
- 数据结构课程设计 哈弗曼编码译码器
- 基于JAVA的人力资源管理系统
- java连接db2jar包
- orderMeal.zip
- 用java写socket.io客户端所需jar包
- My12306购票系统
- java web 课程设计实验报告.docx
- 尚硅谷_Spring.docx
- 尚硅谷_宋红康_编程入门.pdf
- java毕业设计美食分享系统
- Java课程设计聊天程序
- JAVA_EE_api_中英文对照版.chm(田克传制
- jsp党费管理系统源码
- Developing Games in Java
- Java Web高级编程(源码)
- Java Web 网上书店管理系统
- Romain Manni-Bucau - Java EE 8 High Performanc
- 纯java写的斗地主 java swing界面搭建
- Arcgis+server+java开发
- Java web失物招领源代码
- Java+SpringBoot+MyBatis+Maven+MySQL实现的一个
- java 文本阅读器
- 基于JavaEE的学生宿舍管理系统 JSP
评论
共有 条评论