文件的重命名与移动操作
有时候为了对文件进行统一访问与管理,需要把文件进行重命名,并移动到新的文件夹,如何实现呢?
一枚简单的java小程序即可实现:
part_1:需求:我需要把<(e:\baiduyun\传智播客_张孝祥_java多线程与并发库高级应用视频教程下载)>文件夹下的所有子文件夹下的视频文件重命名,并移动到新的位置<(e:\baiduyun\张孝祥_java多线程与并发库)>;
part_2:目录结构如下:
e:\baiduyun
e:\baiduyun\传智播客_张孝祥_java多线程与并发库高级应用视频教程下载
e:\baiduyun\传智播客张孝祥_java多线程与并发库高级应用视频教程下载\01传智播客张孝祥传统线程技术回顾
part_3:程序源码+注释:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
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文件的重命名与移动操作实例代码的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站其他相关专题,如有不足之处,欢迎留言指出。感谢朋友们对本站的支持!
原文链接:http://blog.csdn.net/love_legain/article/details/54972387