java 使用 common-net.jar來操作ftp伺服器上傳下載,刪除,移動,重新命名等操作
package hgs.test; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import org.apache.commons.net.ftp.FTPClient; import org.apache.commons.net.ftp.FTPFile; public class FTPTest { static String hostname="192.168.249.134"; static int port = 21; static String username = "hgs"; static String password = "hgs"; public static void main(String[] args) { FTPClient client = getFTPClient(); if(client==null) return; //mkFTPServerCompleteDir(client,"/home/hgs"); //downloadFiles(client, "/home/hgs", "c:/download"); //uploadFile(client, "c:/download/ipconf.cfg", "/home/hgs"); rmrFile( client , "/home/hgs/upload", "STOU.1"); closeFTPClient(client); } //得到ftp客戶端 public static FTPClient getFTPClient() { FTPClient ftpClient = new FTPClient(); ftpClient.setControlEncoding("utf-8"); boolean flg = false; try { ftpClient.connect(hostname, port); flg = ftpClient.login(username, password); } catch (IOException e) { e.printStackTrace(); } if(flg) { return ftpClient; }else { return null; } } //關閉連結 public static void closeFTPClient(FTPClient client) { try { client.disconnect(); } catch (IOException e) { e.printStackTrace(); } } //遍歷檔案 public static FTPFile[] getFileList(FTPClient client,String dir) { FTPFile[] files=null; try { files = client.listFiles(dir); } catch (IOException e) { e.printStackTrace(); } /* for(FTPFile file : files) { System.out.println(file.getName()); }*/ return files; } //下載檔案 public static void downloadFiles(FTPClient client,String sourcedir,String destdir) { boolean flg = false; try { flg = client.changeWorkingDirectory(sourcedir); } catch (IOException e) { e.printStackTrace(); } if(flg) { try { //得到所有檔案遍歷 FTPFile[] files = client.listFiles(); for(FTPFile file: files) { String filename = file.getName(); if(!downloadExists(destdir,filename)&&!"done".equals(filename)) { FileOutputStream fos = new FileOutputStream(destdir+"/"+filename); client.retrieveFile(filename, fos); fos.close(); //下載完成後移動檔案到完成目錄,這裡可以當做重新命名或者移動檔案 client.rename(sourcedir+"/"+filename, sourcedir+"/done/"+filename); } } } catch (IOException e) { e.printStackTrace(); } } } //判斷本地檔名是否與要下載的檔名重複 public static boolean downloadExists(String destdir,String filename) { File file = new File(destdir+"/"+filename); return file.exists(); } //建立下載完成目錄,下載完成後的檔案都移動到該目錄下 public static void mkFTPServerCompleteDir(FTPClient client,String sourcedir) { String doneDir = sourcedir+"/"+"done"; boolean flg = false; try { FTPFile[] files = client.listDirectories(sourcedir); for(FTPFile f :files) { if(f.getName().equals("done")) flg=true; } if(!flg) client.makeDirectory(doneDir); } catch (IOException e) { e.printStackTrace(); } } public static void uploadFile(FTPClient client ,String sourcefile ,String destdir) { String destination = destdir+"/upload"; mkFTPServerUploadCompleteDir(client,destdir); try { FileInputStream fis = new FileInputStream(sourcefile); boolean flog = client.changeWorkingDirectory(destination); if(flog) { client.setFileType(FTPClient.BINARY_FILE_TYPE); client.storeUniqueFile(fis); fis.close(); } } catch (Exception e ) { e.printStackTrace(); } } //建立下載完成目錄,下載完成後的檔案都移動到該目錄下 public static void mkFTPServerUploadCompleteDir(FTPClient client,String uploaddir) { String doneDir = uploaddir+"/"+"upload"; boolean flg = false; try { FTPFile[] files = client.listDirectories(uploaddir); for(FTPFile f :files) { if(f.getName().equals("upload")) flg=true; } if(!flg) client.makeDirectory(doneDir); } catch (IOException e) { e.printStackTrace(); } } //刪除檔案 public static void rmrFile(FTPClient client ,String path,String filename) { try { client.changeWorkingDirectory(path); client.dele(path+"/"+filename); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
轉自:https://www.cnblogs.com/weihbs/p/7760552.html
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31506529/viewspace-2213965/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Java SFTP 上傳、下載等操作JavaFTP
- ftp上傳工具下載,ftp上傳工具下載使用教程,Linux如何配置ftp伺服器?FTPLinux伺服器
- 輕鬆玩轉Python檔案操作:移動、刪除Python
- java操作ftp serverJavaFTPServer
- oracle資料庫建立、刪除索引等操作Oracle資料庫索引
- Java實現FTP跨伺服器檔案操作JavaFTP伺服器
- Java上傳檔案到ftp伺服器JavaFTP伺服器
- Laravel 軟刪除操作Laravel
- flowable的查詢操作和刪除操作
- UI自動化學習筆記- Selenium操作檔案上傳下載UI筆記
- Qt5.X FTP上傳與下載QTFTP
- Oracle表 列欄位的增加、刪除、修改以及重新命名操作sqlOracleSQL
- Docker批量操作(啟停、刪除、歸檔、載入)Docker
- 容災備份 | 看我使用Powershell操作FTP進行資料檔案自動上傳備份FTP
- win10移動中心被刪了怎麼恢復 win10恢復刪除移動中心操作方法Win10
- 如何在命令列中使用 ftp 命令上傳和下載檔案命令列FTP
- MySQL新增列、刪除列,建立主鍵等常用操作總結MySql
- 如何實現 Logstash/Elasticsearch 與MySQL自動同步 更新操作 和 刪除操作 ?ElasticsearchMySql
- Ubuntu下(跨機)檔案、資料夾的複製、刪除、重新命名、移動、備份Ubuntu
- Java ArrayList 查詢、刪除指定元素;排序;遍歷;隨機獲取元素等常用操作Java排序隨機
- Java後端--29--Mybatis的更新和刪除操作Java後端MyBatis
- 移動端操作同傳有人搞過麼
- ftp工具,ftp工具怎麼使用,如何操作?使用教程圖解。FTP圖解
- vue+element-ui操作刪除(單行和批量刪除)VueUI
- 『心善淵』Selenium3.0基礎 — 19、使用Selenium操作檔案的上傳和下載
- ftp上傳軟體,好用的ftp上傳軟體,使用方法FTP
- JAVA檔案上傳下載Java
- Cookie新增、獲取以及刪除操作Cookie
- 主鍵的建立、新增、刪除操作
- redis cluster節點/新增刪除操作Redis
- mybatis mapper.xml批次刪除操作MyBatisAPPXML
- ftp下載工具,ftp下載工具哪個好用,如何使用?FTP
- JavaScript /JS 如何實現陣列的建立,增加,刪除,遍歷等操作???JavaScriptJS陣列
- 推薦一個java操作ftp的工具類JavaFTP
- C++ 順序容器的刪除操作C++
- Dynamics CRM中自定義頁面實現附件管理包含下載模板、上傳、下載、刪除
- 微信小程式仿微信, QQ 向左滑動刪除操作。微信小程式
- 使用者對某條賬單記錄的刪除操作