java代码:
package com.throuhout.j2eemodel.util;
/**
* 保留Enterprisedt公司信息
* Copyright (C) 2000-2004 Enterprise Distributed Technologies Ltd
*
* www.enterprisedt.com
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* Bug fixes, suggestions and comments should be sent to support@enterprisedt.com
* nether add by heweiya
* 对FTP服务器的通用操作
* ConnFTPServer(String host,String username,String password)
* Upload(String localfile,String filename)
* Download(String localpath)
*
*/
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.URL;
import com.enterprisedt.net.ftp.FTPClient;
import com.enterprisedt.net.ftp.FTPConnectMode;
import com.enterprisedt.net.ftp.FTPException;
import com.enterprisedt.net.ftp.FTPMessageCollector;
import com.enterprisedt.net.ftp.FTPTransferType;
import com.enterprisedt.util.debug.Logger;
/**
* Simple test class for FTPClient
*
* @author Hans Andersen
* @author Bruce Blackshaw
*/
public class FtpClient {
/**
* Log stream
*/
private static Logger log = Logger.getLogger(FtpClient.class);
private FTPClient ftp = null;
public void ConnFTPServer(String host, String username, String password) {
try {
// set up client
ftp = new FTPClient();
ftp.setRemoteHost(host);
FTPMessageCollector listener = new FTPMessageCollector();
ftp.setMessageListener(listener);
//ftp.setAutoPassiveIPSubstitution(true);
// connect
log.info("Connecting");
ftp.connect();
// login
log.info("Logging in");
ftp.login(username, password);
// set up passive ASCII transfers
log.debug("Setting up passive, ASCII transfers");
ftp.setConnectMode(FTPConnectMode.ACTIVE);
ftp.setType(FTPTransferType.ASCII);
} catch (Exception e) {
log.error("Demo failed", e);
}
}
public void Upload(String localfile, URL url) {
String host = url.getHost();
int port = url.getPort();
File filePath = new File(url.getPath());
String directory = filePath.getParent().substring(1);
String filename = filePath.getName();
try {
//connect(host, port);
ftp.chdir(directory);
ftp.put(new FileInputStream(localfile), filename);
} catch (Exception e) {
log.error("Demo failed", e);
}
}
public void Upload(String localpath,String filename) {
try {
ftp.put(localpath, filename);
} catch (Exception e) {
log.error("Demo failed", e);
}
}
public void DownloadAll(String localpath){
try {
ftp.chdir("xml");
String[] files = ftp.dir(".", true);
for (int i = 0; i < files.length; i++) {
String testfile = files[i].substring(39);//大家可以看到这里,testfile取µ貌皇Çfilename而是一个字条串,我Ö皇谴涌¼的位置取得FILENAME,方法可能很笨,但是我不知道如何来取得真正的FILENAME。
log.debug(files[i]);
ftp.get(new FileOutputStream(localpath+testfile),testfile);
//ftp.get(localpath + testfile, testfile);
}
} catch (IOException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
} catch (FTPException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
}
public void DisConn(){
try {
ftp.quit();
} catch (IOException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
} catch (FTPException e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
}
}