ftp4j是一個FTP客戶端Java類庫,實現(xiàn)了FTP客戶端應(yīng)具有的大部分功能。可以將ftp4j嵌到你的Java應(yīng)用中,來傳輸文件(包括上傳和下載),瀏覽遠(yuǎn)程FTP服務(wù)器上的目錄和文件,創(chuàng)建、刪除、重命,移動遠(yuǎn)程目錄和文件。ftp4j提供多種方式連接到遠(yuǎn)程FTP服務(wù)器包括:通過 TCP/IP直接連接,通過FTP代理、HTTP代理、SOCKS4/4a代理和SOCKS5代理連接,通過SSL安全連接。
簡單應(yīng)用---API介紹
The main class of the library is FTPClient (it.sauronsoftware.ftp4j.FTPClient).
1. 創(chuàng)建FTPClient實例
FTPClient client = new FTPClient();
連接到指定的FTP服務(wù)器(域名或IP) 不指定端口,則使用默認(rèn)端口21
client.connect("ftp.host.com", /*21*/);
登錄驗證
client.login("user", "pswd");
下面是匿名登錄
//client.login("anonymous", "密碼任意設(shè)置");
client.login("anonymous", "ftp4j");
安全退出
client.disconnect(true);
//強制退出
//client.disconnect(false);
文件以及文件夾操作:
取得當(dāng)前文件夾
String dir = client.currentDirectory();
改變當(dāng)前文件夾
client.changeDirectory(newPath);
//絕對路徑
//client.changeDirectory("/an/absolute/one");
//相對路徑
//client.changeDirectory("relative");
//回退到上級目錄
client.changeDirectoryUp();
//重命名文件或文件夾
client.rename("oldname", "newname");
//移動文件或文件夾
client.rename("myfile.txt", "myfolder/myfile.txt");
//刪除文件
client.deleteFile(relativeOrAbsolutePath);
//client.deleteFile("useless.txt");
//創(chuàng)建目錄
client.createDirectory("newfolder");
//刪除目錄(空目錄)
client.deleteDirectory(absoluteOrRelativePath);
//client.deleteDirectory("oldfolder");
//瀏覽文件
FTPFile[] list = client.list();
//使用通配瀏覽文件
FTPFile[] list = client.list("*.jpg");
//顯示文件或文件夾的修改時間
java.util.Date md = client.modifiedDate("filename.ext");
//上傳和下載文件
//下載服務(wù)器上remoteFile.ext 下載到本地 localFile.ext
client.download("remoteFile.ext", new java.io.File("localFile.ext"));
//上傳 本地 localFile.ext 到當(dāng)前目錄
client.upload(new java.io.File("localFile.ext"));
// 上傳和下載文件時, 監(jiān)聽文件傳輸?shù)臓顟B(tài)
public class MyTransferListener implements FTPDataTransferListener {
//文件開始上傳或下載時觸發(fā)
public void started() {
}
//顯示已經(jīng)傳輸?shù)淖止?jié)數(shù)
public void transferred(int length) {
}
//文件傳輸完成時,觸發(fā)
public void completed() {
}
//傳輸放棄時觸發(fā)
public void aborted() {
// Transfer aborted
}
//傳輸失敗時觸發(fā)
public void failed() {
}
示例:
client.download("remoteFile.ext", new java.io.File("localFile.ext"), new MyTransferListener());
client.upload(new java.io.File("localFile.ext"), new MyTransferListener());
//ftp4j也支持?jǐn)帱c續(xù)傳功能
下面是一個簡單示例:*參數(shù) 1056 跳過 1056字節(jié)點下載
client.download("remoteFile.ext", new java.io.File("localFile.ext"), 1056);
設(shè)置傳輸模式
//ASC碼
client.setType(FTPClient.TYPE_TEXTUAL);
//二進制
client.setType(FTPClient.TYPE_BINARY);
//自動選擇(根據(jù)文件內(nèi)容)
client.setType(FTPClient.TYPE_AUTO);
//設(shè)置連接器
client.setConnector(connector);
SSL 套接字連接
client.setConnector(
it.sauronsoftware.ftp4j.connectors.SSLConnector)
client.setConnector(anyConnectorYouWant);
ftp4j 官網(wǎng):
http://www.sauronsoftware.it/projects/ftp4j/
Good Luck!
Yours Matthew!
posted on 2008-12-01 08:13
x.matthew 閱讀(7733)
評論(8) 編輯 收藏 所屬分類:
Best Practise(JDK API)