java文件的重命名与移动操作实例代码
作者:_MIKE_SUN_ 时间:2022-06-16 04:18:12
文件的重命名与移动操作
有时候为了对文件进行统一访问与管理,需要把文件进行重命名,并移动到新的文件夹,如何实现呢?
一枚简单的java小程序即可实现:
part_1:需求:我需要把<(E:\BaiduYun\传智播客_张孝祥_Java多线程与并发库高级应用视频教程下载)>文件夹下的所有子文件夹下的视频文件重命名,并移动到新的位置<(E:\BaiduYun\张孝祥_Java多线程与并发库)>;
part_2:目录结构如下:
E:\BaiduYun
E:\BaiduYun\传智播客_张孝祥_Java多线程与并发库高级应用视频教程下载
E:\BaiduYun\传智播客张孝祥_Java多线程与并发库高级应用视频教程下载\01传智播客张孝祥传统线程技术回顾
part_3:程序源码+注释:
package cn.mike.demo;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.List;
/**
* @author Administrator
* @usage 该程序实现文件的重命名与移动操作;
*/
public class RenameFiles {
private static File srcFolder;
// 源文件夹
private static File destFolder;
// 目的文件夹
private static List<File> srcFiles;
// 存放所有待命名的文件
static {
srcFolder = new File("E:\\BaiduYun\\传智播客_张孝祥_Java多线程与并发库高级应用视频教程下载");
destFolder = new File("E:\\BaiduYun\\张孝祥_Java多线程与并发库");
srcFiles = new ArrayList<File>();
}
public static void main(String[] args) {
// 对文件夹的合法性(是否存在)进行校验
try {
checkFolder();
}
catch (FileNotFoundException e) {
e.printStackTrace();
return;
}
// 遍历源文件夹把要修改的文件放到集合中
iterateGetFiles(RenameFiles.srcFolder);
// 对集合中的元素进行重命名(并移动到目标文件夹)
iterateRename();
}
// end method-main
private static void checkFolder() throws FileNotFoundException {
if (!RenameFiles.srcFolder.exists()) {
throw new FileNotFoundException("指定的源文件夹不存在.");
}
if (!RenameFiles.destFolder.exists()) {
throw new FileNotFoundException("指定的目标文件夹不存在.");
}
}
private static void iterateRename() {
String aviName = null;
String tempStr = null;
StringBuilder strBuilder = new StringBuilder();
File tempFile = null;
String sequenceNumber = null;
String detailName = null;
// 遍历list集合,逐个进行重命名
for (File each : RenameFiles.srcFiles) {
aviName = each.getName().substring(0, each.getName().length() - 4);
// 获取文件名称(除去后缀名".avi")
tempStr = each.getParent();
// 父文件夹的名称
sequenceNumber = String.format("%02d", Integer.valueOf(aviName));
// 两位的序号,不足两位用0补齐,例如:01
detailName = tempStr.substring(tempStr.lastIndexOf("_") + 1);
// 视频文件的详细内容,例如:传统线程互斥技术
strBuilder.append(sequenceNumber + "_" + detailName + ".avi");
tempFile = new File(RenameFiles.destFolder, strBuilder.toString());
// 新文件的path
// each.renameTo(tempFile);//核心代码(实现重命名和移动)
System.out.println(tempFile.toString());
// 打印到控制台以便调试
strBuilder.delete(0, strBuilder.length());
// 切记将strBuilder进行清空
}
// end foreach
}
// end method-iterateRename
private static void iterateGetFiles(File srcFile) {
// 如果是文件夹,就继续深入遍历
if (srcFile.isDirectory()) {
File[] files = srcFile.listFiles();
for (File each : files) {
iterateGetFiles(each);
}
} else if (srcFile.getAbsolutePath().endsWith(".avi")) {
// 不是文件夹而且文件格式为avi,就将该文件添加到待命名文件的list集合中
RenameFiles.srcFiles.add(srcFile);
}
}
// end method-iterateGetFiles
}
// end class-RenameFiles
part_4:重命名及移动后的效果:
E:\BaiduYun\张孝祥_Java多线程与并发库
来源:http://blog.csdn.net/love_legain/article/details/54972387
标签:java,文件重命名,文件移动
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
SpringBoot项目jar和war打包部署方式详解
2023-05-10 14:58:29
Android开源框架的SlidingFragment的使用示例
2021-06-18 09:37:31
![](https://img.aspxhome.com/file/2023/2/138202_0s.png)
MyBatis中${} 和 #{} 有什么区别小结
2021-09-21 14:42:35
![](https://img.aspxhome.com/file/2023/2/89572_0s.jpg)
Android studio将Module打包成Jar的方法
2021-12-15 20:59:21
![](https://img.aspxhome.com/file/2023/5/96775_0s.png)
C#生成二维码的方法
2021-11-11 02:49:21
java程序设计语言的优势及特点
2022-08-16 09:12:57
C# 键值对数据排序代码
2022-07-09 00:49:51
Android 使用Vibrator服务实现点击按钮带有震动效果
2023-06-15 01:57:16
![](https://img.aspxhome.com/file/2023/3/125383_0s.jpg)
SpringBoot使用Redisson实现分布式锁(秒杀系统)
2022-07-17 05:15:41
![](https://img.aspxhome.com/file/2023/7/83487_0s.jpg)
Android XListView下拉刷新和上拉加载更多
2022-11-01 19:07:45
![](https://img.aspxhome.com/file/2023/8/126698_0s.gif)
C#利用递归算法解决汉诺塔问题
2022-04-29 23:04:10
![](https://img.aspxhome.com/file/2023/4/78194_0s.jpg)
java interface的两个经典用法
2021-08-17 06:20:56
详解java CountDownLatch和CyclicBarrier在内部实现和场景上的区别
2022-03-22 13:03:02
SpringCloud Hystrix-Dashboard仪表盘的实现
2023-03-16 18:38:03
![](https://img.aspxhome.com/file/2023/3/80973_0s.png)
Mybatisplus主键生成策略算法解析
2022-06-22 20:49:23
详解MyBatis-Puls中saveBatch批量添加慢的问题
2021-10-14 02:36:27
![](https://img.aspxhome.com/file/2023/9/64369_0s.png)
java如何读取超大文件
2022-10-24 08:20:54
![](https://img.aspxhome.com/file/2023/4/132174_0s.jpg)
Java将byte[]转图片存储到本地的案例
2021-08-30 08:19:12
基于FeignException$InternalServerError的解决方案
2023-04-25 15:50:45
![](https://img.aspxhome.com/file/2023/2/60492_0s.png)
Java关键字synchronized原理与锁的状态详解
2021-11-16 05:30:29
![](https://img.aspxhome.com/file/2023/5/116805_0s.png)