posts - 156,  comments - 601,  trackbacks - 0
          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/

          Good Luck!
          Yours Matthew!

          posted on 2008-12-01 08:13 x.matthew 閱讀(7732) 評論(8)  編輯  收藏 所屬分類: Best Practise(JDK API)
          主站蜘蛛池模板: 青海省| 丰台区| 武川县| 白玉县| 应城市| 信丰县| 大渡口区| 青冈县| 云浮市| 和硕县| 锡林郭勒盟| 津南区| 义乌市| 乐清市| 灵宝市| 公安县| 诸城市| 南康市| 宣城市| 孝义市| 四子王旗| 竹北市| 小金县| 崇仁县| 汪清县| 比如县| 湘潭市| 鞍山市| 吴桥县| 浦县| 永修县| 夏河县| 明水县| 阳山县| 玉田县| 枣阳市| 江门市| 白银市| 普兰店市| 扎囊县| 伊宁市|