ftp客户端代码java_用edtftpj实现Java FTP客户端工具

importcom.enterprisedt.net.ftp.FTPException;importcom.enterprisedt.net.ftp.FTPFile;importcom.enterprisedt.net.ftp.FileTransferClient;importcom.enterprisedt.net.ftp.WriteMode;importorg.apache.commons.logging.Log;importorg.apache.commons.logging.LogFactory;importjava.io.File;importjava.io.IOException;importjava.text.ParseException;/*** edtftpj-2.0.3 工具简单封装测试

*

*@authorleizhimin 2008-9-19 13:33:03*/

public classFtpUtil {private static Log log = LogFactory.getLog(FtpUtil.class);private FileTransferClient client = null;public static void main(String[] args) throwsFTPException, IOException {

FtpUtil ftp= newFtpUtil();//ftp.connectServer();

File file = new File("C:\\ooo\\upx");

UploadListener listener= newUploadListener(ftp.client);

ftp.ftpUploadFolder(file, listener);

ftp.ftpDownload("c:\\new1111.gif", "/upx/down.gif");

ftp.disconnect();

}publicFtpUtil() {this.connectServer();

}publicFileTransferClient getClient() {returnclient;

}/*** 连接ftp服务器

*

*@return连接成功标识*/

public booleanconnectServer() {boolean flag = false;

client= newFileTransferClient();try{

client.setUserName("admin");

client.setPassword("123");

client.setRemoteHost("localhost");

client.setRemotePort(21);

client.setTimeout(1200);

client.setEventListener(newUploadListener(client));

client.getAdvancedSettings().setTransferBufferSize(1000);

client.getAdvancedSettings().setTransferNotifyInterval(5000);

client.getAdvancedSettings().setControlEncoding("GBK");

client.connect();

flag= true;

}catch(FTPException e) {

e.printStackTrace();

}catch(IOException e) {

e.printStackTrace();

}returnflag;

}/*** 关闭FTP客户端连接

*

*@return关闭成功标识*/

public booleandisconnect() {boolean flag = false;try{

client.disconnect();

flag= true;

}catch(FTPException e) {

e.printStackTrace();

}catch(IOException e) {

e.printStackTrace();

}returnflag;

}/*** 上传文件

*

*@paramfile 文件

*@paramul 监听器*/

public voidftpUploadFile(File file, UploadListener ul) {

String fileName=file.getName();

String filePath=file.getPath();try{

client.uploadFile(filePath, fileName, WriteMode.RESUME);int len = (int) client.getSize(fileName);

log.info("上传文件" + filePath + "完成,大小为" + len + "字节!");

}catch(FTPException e) {

e.printStackTrace();

}catch(IOException e) {

e.printStackTrace();

}

}/*** 上传文件(夹)

*

*@paramfile 上传文件

*@paramul 上传监听器*/

public voidftpUploadFolder(File file, UploadListener ul) {if(file.isFile()) {

ftpUploadFile(file, ul);

}try{if(file.isDirectory()) {

FTPFile[] ftpFiles=client.directoryList();boolean isExist = false;//遍历FTP当前目录的文件文件名,如果存在则停止查找,如果不存在则设计标记为不存在

for(FTPFile ftpFile : ftpFiles) {if(ftpFile.getName().equals(file.getName())) {

isExist= true;break;

}

}//如果要上传的目录不存在,则创建上传目录

if (!isExist) {

client.createDirectory(file.getName());

}//设置当前目录

client.changeDirectory(file.getName());//上传文件的列表

File[] upFiles =file.listFiles();for(File upFile : upFiles) {if(upFile.isFile()) {

ftpUploadFile(upFile, ul);

}else if(upFile.isDirectory()) {

ftpUploadFolder(upFile, ul);

}

}

client.changeToParentDirectory();

}

}catch(FTPException e) {

e.printStackTrace();

}catch(IOException e) {

e.printStackTrace();

}catch(ParseException e) {

e.printStackTrace();

}

}/*** 下载文件

*

*@paramlocalFileName 本地文件名

*@paramremoteFileName 远程文件名

*@throwsFTPException

*@throwsIOException*/

public void ftpDownload(String localFileName, String remoteFileName) throwsFTPException, IOException {

client.downloadFile(localFileName, remoteFileName, WriteMode.OVERWRITE);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值