所需lib 下载地址
http://www.enterprisedt.com/products/edtftpj/downloadlink.html
package com.ftp;
import com.enterprisedt.net.ftp.FTPClient;
import com.enterprisedt.net.ftp.FTPFile;
import com.enterprisedt.net.ftp.FTPMessageCollector;
import com.enterprisedt.net.ftp.FTPTransferType;
import com.enterprisedt.net.ftp.FTPConnectMode;
import com.enterprisedt.util.debug.Level;
import com.enterprisedt.util.debug.Logger;
import java.io.File;
import java.util.List;
/**
*
*/
public class FtpUtil {
/** 判断文件夹是否存在,这种方式不是很准 */
public static boolean isDirExist(String dirname, String[] files) {
for (int i = 0; i < files.length; i++) {
if (files[i].indexOf("<DIR>") > -1 && files[i].indexOf(dirname) > -1) {
return true;
}
}
return false;
}
public void upDownFile() {
String host = "10.163.7.15";
String user = "cxl";
String password = "1";
/** 定义FTPClient便利 */
FTPClient ftp = null;
try {
/** 创建FTPClient */
ftp = new FTPClient();
/** 连接服务器 */
ftp.setRemoteHost(host);
ftp.connect();
/** 登陆 */
ftp.login(user, password);
/** 以波动模式连接 */
ftp.setConnectMode(FTPConnectMode.PASV);
/**
* ASCII方式:只能传输一些如txt文本文件, zip、jpg等文件需要使用BINARY方式
* */
// ftp.setType(FTPTransferType.ASCII);
ftp.setType(FTPTransferType.BINARY);
/**
* 切换到主目录,并枚举主目录的所有文件及文件夹 包括日期、文件大小等详细信息 files = ftp.dir("."),则只有文件名
*/
String[] files = ftp.dir(".", true);
for (int i = 0; i < files.length; i++)
System.out.println(files[i]);
/** 下载info文件夹下的所有文件到 d:/temp 目录下 */
String outdir = "d://temp//";
File attachments = new File(outdir);
/** 如果文件夹不存在,则创建 */
if (!attachments.exists()) {
attachments.mkdir();
}
/** 获取文件夹下的所有文件 */
files = ftp.dir("info");
ftp.chdir("info");
for (int i = 0; i < files.length; i++) {
/** 下载文件 */
ftp.get(outdir + files[i], files[i]);
/** 下载后删除文件 */
ftp.delete(files[i]);
}
/** 上传文件到服务器当前目录 */
ftp.put("20061108.xml", "20061108.xml");
/** 删除文件 */
ftp.delete("20061108.xml");
/** 不存在则创建文件夹 */
if (!isDirExist("20061108", files)) {
ftp.mkdir("20061108");
}
/** 断开连接 */
ftp.quit();
} catch (Exception e) {
e.printStackTrace();
}
}
}