使用ftp4j類來實現FTP操作

來源:互聯網
上載者:User

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);

ftp4j 官網: http://www.sauronsoftware.it/projects/ftp4j/

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.