renameTo()方法:
- boolean renameTo(File dest) :重命名由此抽象路径名表示的文件。
- 参数 :dest - 命名文件的新抽象路径名
- 结果 :true当且仅当重命名成功; 否则false
运行代码前文件名
运行代码:
public static void main(String[] args) {
//获取要批量改名的文件夹路径
String src="C:\\Users\\21309\\Pictures\\二维码";
File file=new File(src);
if (file.isDirectory()){
//将文件夹下的文件存入数组
File[] files=file.listFiles();
//声明一个计数器
int index=0;
//遍历遍历文件夹下的子文件
for (File file1 : files) {
//获取文件夹下子文件的文件名
String filename=file1.getName().toLowerCase(Locale.ROOT);
//截取文件后缀名
int pos=filename.lastIndexOf(".");
String exn=filename.substring(pos+1);
//判断是否为相同文件名文件
if ("png".equalsIgnoreCase(exn)){
//设置文件同意命名格式
String newFilename=String.format("CSDN-%03d.%s",++index,exn);
//将文件按规定格式命名到指定路径下
file1.renameTo(new File("C:\\Users\\21309\\Pictures\\二维码",newFilename));
}
}
}
}
运行代码后文件名
注意:
1.source不管是代表一个目录,还是一个文件的路径都必须是在磁盘上存在的,如:E:\access\A代表,在E盘的access文件夹下有一个名字为A的文件夹;或E:\access\cookie2.java表示在E盘的access文件夹下有一个名字为cookie2.java的文件。
2.dest则恰恰相反,代表一个不存在的目录或文件路径(仅限最后一个’'后面文件夹或文件的不存在(必须,否则无法完成),其余的目录必须已存在)。
其中1,2两点必须同时具备,否则出错(返回false)。
因此,可以利用上述操作实现文件的移动(注意,不是复制)。将source中的文件移动至dest目录下,也可以改变文件的类型,执行完renameTo操作后,原有位置的文件不存在,被移动至dest处,且被更改为dest中抽象文件的名字和类型。