1、引入包
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.util.List;
2、我们建一个叫做FtpEptUtil的class
/** 判断文件夹是否存在,这种方式不是很准 */
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;
}
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)??
{
logger.error(“Demo failed”, e);
}
注:添加edtftpj-1.5.3.jar包
http://www.findjar.com/jar/com.enterprisedt/jars/edtFTPj-1.5.3.jar.html