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
- thinkphp對檔案的上傳,刪除,下載操作PHP
- ftp上傳工具下載,ftp上傳工具下載使用教程,Linux如何配置ftp伺服器?FTPLinux伺服器
- java檔案和資料夾複製、刪除、移動操作Java
- java 重新命名操作Java
- java操作ftp serverJavaFTPServer
- 圖片上傳-下載-刪除等圖片管理的若干經驗總結
- oracle資料庫建立、刪除索引等操作Oracle資料庫索引
- 輕鬆玩轉Python檔案操作:移動、刪除Python
- 如何在Webstorm/Phpstorm中設定連線FTP,並快速進行檔案比較,上傳下載,同步等操作WebORMPHPFTP
- Linux使用Shell指令碼實現ftp的自動上傳下載Linux指令碼FTP
- 圖片上傳-下載-刪除等圖片管理的若干經驗總結2
- 從ftp上傳下載檔案(二)FTP
- 從ftp上傳下載檔案(一)FTP
- C# FTP 上傳 下載(彙總)C#FTP
- JAVA中使用FTPClient上傳下載JavaFTPclient
- Java上傳檔案到ftp伺服器JavaFTP伺服器
- Java實現FTP跨伺服器檔案操作JavaFTP伺服器
- C# FTP上傳下載(支援斷點續傳)C#FTP斷點
- C# 上傳下載ftp(支援斷點續傳)C#FTP斷點
- Qt5.X FTP上傳與下載QTFTP
- Laravel 軟刪除操作Laravel
- 透過trigger禁止使用者刪除或修改等DDL操作
- 通過trigger禁止使用者刪除或修改等DDL操作
- UI自動化學習筆記- Selenium操作檔案上傳下載UI筆記
- flowable的查詢操作和刪除操作
- 容災備份 | 看我使用Powershell操作FTP進行資料檔案自動上傳備份FTP
- Gerrit上分支操作記錄(建立分支、刪除分支)
- Docker批量操作(啟停、刪除、歸檔、載入)Docker
- Oracle表 列欄位的增加、刪除、修改以及重新命名操作sqlOracleSQL
- 如何在命令列中使用 ftp 命令上傳和下載檔案命令列FTP
- centos 檔案新建、刪除、移動、複製等命令CentOS
- OCR/Vote disk 維護操作: (新增/刪除/替換/移動) (文件 ID 1674859.1)
- MySQL新增列、刪除列,建立主鍵等常用操作總結MySql
- win10移動中心被刪了怎麼恢復 win10恢復刪除移動中心操作方法Win10
- JAVA檔案上傳下載Java
- Java ArrayList 查詢、刪除指定元素;排序;遍歷;隨機獲取元素等常用操作Java排序隨機
- ASM磁碟組刪除DISK操作ASM