03-Java框架FTPClient 使用rename()移動文件和文件重命名

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 發佈!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章