使用ftp4j類來實現FTP操作

ftp4j是一個FTP客戶端Java類庫,實現了FTP客戶端應具有的大部分功能。可以將ftp4j嵌到你的Java應用中,來傳輸文件(包括上傳和下載),瀏覽遠程FTP服務器上的目錄和文件,創建、刪除、重命,移動遠程目錄和文件。ftp4j提供多種方式連接到遠程FTP服務器包括:通過 TCP/IP直接連接,通過FTP代理、HTTP代理、SOCKS4/4a代理和SOCKS5代理連接,通過SSL安全連接。

簡單應用---API介紹

The main class of the library is FTPClient (it.sauronsoftware.ftp4j.FTPClient).

1. 創建FTPClient實例
FTPClient client = new FTPClient();

連接到指定的FTP服務器(域名或IP) 不指定端口,則使用默認端口21
client.connect("ftp.host.com", /*21*/);

登錄驗證
client.login("user", "pswd");

下面是匿名登錄
//client.login("anonymous", "密碼任意設置");
client.login("anonymous", "ftp4j");

安全退出
client.disconnect(true);
//強制退出
//client.disconnect(false);

文件以及文件夾操作:

取得當前文件夾
String dir = client.currentDirectory();

改變當前文件夾
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");

//創建目錄
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");


//上傳和下載文件
//下載服務器上remoteFile.ext 下載到本地 localFile.ext
client.download("remoteFile.ext", new java.io.File("localFile.ext"));

//上傳 本地 localFile.ext 到當前目錄
client.upload(new java.io.File("localFile.ext"));

// 上傳和下載文件時, 監聽文件傳輸的狀態
public class MyTransferListener implements FTPDataTransferListener {

    //文件開始上傳或下載時觸發
    public void started() {
    }
    //顯示已經傳輸的字節數
    public void transferred(int length) {
    }
    //文件傳輸完成時,觸發
    public void completed() {
    }
    //傳輸放棄時觸發
    public void aborted() {
        // Transfer aborted
    }
    //傳輸失敗時觸發
    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也支持斷點續傳功能
下面是一個簡單示例:*參數 1056 跳過 1056字節點下載
client.download("remoteFile.ext", new java.io.File("localFile.ext"), 1056);


設置傳輸模式
//ASC碼
client.setType(FTPClient.TYPE_TEXTUAL);
//二進制
client.setType(FTPClient.TYPE_BINARY);
//自動選擇(根據文件內容)
client.setType(FTPClient.TYPE_AUTO);

//設置連接器
client.setConnector(connector);
SSL 套接字連接
client.setConnector(it.sauronsoftware.ftp4j.connectors.SSLConnector)

client.setConnector(anyConnectorYouWant);



原文:http://blog.csdn.net/zjq118/article/details/4339589

發佈了51 篇原創文章 · 獲贊 6 · 訪問量 15萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章