• 大小: 3.69MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-11-09
  • 语言: Java
  • 标签: java  ftp  

资源简介

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

评论

共有 条评论