欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-12-17 22:02:10
文件的重命名与移动操作 有时候为了对文件进行统一访问与管理,需要把文件进行重命名,并移动到新的文件夹,如何实现呢? 一枚简单的java小程序即可实现: par...

文件的重命名与移动操作

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

一枚简单的java小程序即可实现:

part_1:需求:我需要把<(e:\baiduyun\传智播客_张孝祥_java多线程与并发库高级应用视频教程下载)>文件夹下的所有子文件夹下的视频文件重命名,并移动到新的位置<(e:\baiduyun\张孝祥_java多线程与并发库)>;

part_2:目录结构如下:

e:\baiduyun

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

e:\baiduyun\传智播客_张孝祥_java多线程与并发库高级应用视频教程下载

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

e:\baiduyun\传智播客张孝祥_java多线程与并发库高级应用视频教程下载\01传智播客张孝祥传统线程技术回顾

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

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

上一篇:

下一篇: