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 发布!

热门相关:公子别秀   首席的强娶豪夺:离婚365次   美食萌后:皇上,喂不饱!   万妖帝主   弃妇当家:带着萌宝去种田