为了账号安全,请及时绑定邮箱和手机立即绑定

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

标签:
Java

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"); // 绝对路径

关注我,紧跟本系列专栏文章,咱们下篇再续!

作者简介:魔都技术专家,多家大厂后端一线研发经验,在分布式系统、和大数据系统等方面有多年的研究和实践经验,拥有从零到一的大数据平台和基础架构研发经验,对分布式存储、数据平台架构、数据仓库等领域都有丰富实践经验。

各大技术社区头部专家博主。具有丰富的引领团队经验,深厚业务架构和解决方案的积累。

负责:

  • 中央/分销预订系统性能优化
  • 活动&优惠券等营销中台建设
  • 交易平台及数据中台等架构和开发设计
  • 车联网核心平台-物联网连接平台、大数据平台架构设计及优化

目前主攻降低软件复杂性设计、构建高可用系统方向。

参考:

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消