java文件的重命名与移动操作实例代码

 更新时间:2017年12月28日 15:59:08   作者:_MIKE_SUN_  
这篇文章主要介绍了java文件的重命名与移动操作实例代码,具有一定借鉴价值,需要的朋友可以参考下

文件的重命名与移动操作

有时候为了对文件进行统一访问与管理,需要把文件进行重命名,并移动到新的文件夹,如何实现呢?

一枚简单的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多线程与并发库

总结

以上就是本文关于java文件的重命名与移动操作实例代码的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!

相关文章

  • Java关键字volatile知识点总结

    Java关键字volatile知识点总结

    在本篇文章里小编给大家整理的是一篇关于Java关键字volatile知识点总结内容,有兴趣的朋友们可以学习参考下。
    2021-01-01
  • WebClient抛UnsupportedMediaTypeException异常解决

    WebClient抛UnsupportedMediaTypeException异常解决

    这篇文章主要为大家介绍了WebClient抛UnsupportedMediaTypeException异常的解决方案,文中给大家介绍了六中方案,有需要的朋友可以借鉴参考下,希望能够有所帮助
    2022-02-02
  • SpringBoot WebService服务端&客户端使用案例教程

    SpringBoot WebService服务端&客户端使用案例教程

    这篇文章主要介绍了SpringBoot WebService服务端&客户端使用案例教程,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2023-10-10
  • 分享几个Java工作中实用的代码优化技巧

    分享几个Java工作中实用的代码优化技巧

    这篇文章主要给大家分享几个Java工作中实用代码优化技巧,文章基于Java的相关资料展开对其优化技巧的分享,需要的小伙伴可以参考一下
    2022-04-04
  • SpringBoot集成Memcached的项目实践

    SpringBoot集成Memcached的项目实践

    Memcached是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载,本文主要介绍了SpringBoot集成Memcached的项目实践,具有一定的参考价值,感兴趣的可以了解一下
    2024-01-01
  • 从零开始学springboot整合feign跨服务调用的方法

    从零开始学springboot整合feign跨服务调用的方法

    这篇文章主要介绍了从零开始学springboot整合feign跨服务调用的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • Spring使用RestTemplate和Junit单元测试的注意事项

    Spring使用RestTemplate和Junit单元测试的注意事项

    这篇文章主要介绍了Spring使用RestTemplate和Junit单元测试的注意事项,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10
  • 详述IntelliJ IDEA 中自动生成 serialVersionUID 的方法(图文)

    详述IntelliJ IDEA 中自动生成 serialVersionUID 的方法(图文)

    本篇文章主要介绍了详述IntelliJ IDEA 中自动生成 serialVersionUID 的方法(图文),具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-11-11
  • 浅谈一下Java线程组ThreadGroup

    浅谈一下Java线程组ThreadGroup

    ThreadGroup是为了方便线程管理出现了,可以统一设定线程组的一些属性,比如setDaemon,设置未处理异常的处理方法,设置统一的安全策略等等,需要的朋友可以参考下
    2023-05-05
  • java -D参数设置系统属性无效问题及解决

    java -D参数设置系统属性无效问题及解决

    这篇文章主要介绍了java -D参数设置系统属性无效问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12

最新评论