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

时间:2021-12-08 04:16:20

文件的重命名与移动操作

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

一枚简单的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:程序源码+注释:

?
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文件的重命名与移动操作实例代码

总结

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

原文链接:http://blog.csdn.net/love_legain/article/details/54972387