Apache common FTP(一)

2014-11-24 02:43:15 · 作者: · 浏览: 8

import java.io.File;

import java.io.FileOutputStream;

import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

import java.io.RandomAccessFile;

import java.net.SocketException;

import java.util.ArrayList;

import java.util.List;

import org.apache.commons.logging.Log;

import org.apache.commons.logging.LogFactory;

import org.apache.commons.net.ftp.FTP;

import org.apache.commons.net.ftp.FTPClient;

import org.apache.commons.net.ftp.FTPFile;

import org.apache.commons.net.ftp.FTPReply;

/**

* FTP工具类

* @author WangXianfeng 1:16:50 PM Jul 16, 2011

*/

public class FtpUtil {

private FTPClient ftpClient;

private static Log log = LogFactory.getLog(FtpUtil.class);

/**

* 根路径为"/",如果需要链接服务器之后跳转到路径,则在path中定义

* @param ftpConfig

* @throws SocketException

* @throws IOException

*/

public boolean connectServer(FtpConfig ftpConfig) throws SocketException,

IOException {

String server = ftpConfig.getServer();

int port = ftpConfig.getPort();

String user = ftpConfig.getUsername();

String password = ftpConfig.getPassword();

String path = ftpConfig.getPath();

return connectServer(server, port, user, password, path);

}

/**

* 连接ftp服务器

* @param server 服务器ip

* @param port 端口,通常为21

* @param user 用户名

* @param password 密码

* @param path 进入服务器之后的默认路径

* @return 连接成功返回true,否则返回false

* @throws SocketException

* @throws IOException

*/

public boolean connectServer(String server, int port, String user,

String password, String path) throws SocketException, IOException {

ftpClient = new FTPClient();

ftpClient.connect(server, port);

ftpClient.setControlEncoding("GBK");

log.info("Connected to " + server + ".");

log.info("FTP server reply code:" + ftpClient.getReplyCode());

if (FTPReply.isPositiveCompletion(ftpClient.getReplyCode())) {

if (ftpClient.login(user, password)) {

// Path is the sub-path of the FTP path

if (path.length() != 0) {

ftpClient.changeWorkingDirectory(path);

}

return true;

}

}

disconnect();

return false;

}

/**

* 断开与远程服务器的连接

* @throws IOException

*/

public void disconnect() throws IOException {

if (ftpClient.isConnected()) {

ftpClient.