03-Java框架FTPClient 使用rename()移動檔案和檔案重新命名

公众号-JavaEdge發表於2024-04-04

1 需求

由於業務種種原因,現在需要將ftp中已存檔案移動到其它資料夾。

2 初始策略

一開始走上彎路,直接翻看FTPClient API有無move方法,但沒發現:

於是曲線救國,想著採用先複製、再刪除,虛擬碼:

InputStream inputStream = ftpClient.retrieveFileStream("/AAA/test.txt");
ftpClient.storeFile("/BBB/test.txt", inputStream);
ftpClient.deleteFile("/AAA/test.txt");

但不優雅,多步操作易出各種問題,最好有方法一步呼叫。

3 最佳方案

3.1 移動檔案

突然發現rename()可實現該需求,這誰看的出來能夠移動檔案呢?

一行搞定需求:

ftpClient.rename("/AAA/test.txt", "/BBB/test.txt"); // 絕對路徑

還支援相對路徑

ftpClient.rename("CCC/test.txt", "DDD/test.txt");

還可絕對路徑和相對路徑一起用

ftpClient.rename("/EEE/test.txt", "FFF/test.txt");

絕對路徑是以"/"開頭的路徑,相對路徑是不以"/"開頭的路徑,關於兩者的區別可以參考java FTPClient中的相對路徑和絕對路徑這篇文章,以免踩坑

3.2 重新命名

只是目標資料夾和原始檔夾名一致,只是改了檔名

ftpClient.rename("/AAA/test.txt", "/AAA/test2.txt"); // 絕對路徑

關注我,緊跟本系列專欄文章,咱們下篇再續!

作者簡介:魔都技術專家,多家大廠後端一線研發經驗,在分散式系統、和大資料系統等方面有多年的研究和實踐經驗,擁有從零到一的大資料平臺和基礎架構研發經驗,對分散式儲存、資料平臺架構、資料倉儲等領域都有豐富實踐經驗。

各大技術社群頭部專家博主。具有豐富的引領團隊經驗,深厚業務架構和解決方案的積累。

負責:

  • 中央/分銷預訂系統效能最佳化
  • 活動&優惠券等營銷中臺建設
  • 交易平臺及資料中臺等架構和開發設計
  • 車聯網核心平臺-物聯網連線平臺、大資料平臺架構設計及最佳化

目前主攻降低軟體複雜性設計、構建高可用系統方向。

參考:

  • 程式設計嚴選網

本文由部落格一文多發平臺 OpenWrite 釋出!

相關文章