很多时候我们都需要批量修改文件名。
虽然靠系统的全选后再修改单个文件也可以达到批量修改的目的,但效果有限。
作为程序员的我们,写个小脚本来批量修改还不是美滋滋。
废话不多说先上代码(java)
完整代码展示
import java.io.File;
public class Main {
public static void main(String[] args) {
System.out.println("******程序运行开始******");
// 文件夹目录
// String fileDirectoryPath = "C:/Users/windows/Desktop/开场界面";
String fileDirectoryPath = "C:\\Users\\windows\\Desktop\\开场界面";
// 获得文件夹目录的File对象
File fileDirectory = new File(fileDirectoryPath);
// 目录是否存在
if (fileDirectory.exists()) {
System.out.println("File获取成功");
// file 是否是目录
if (fileDirectory.isDirectory()) {
System.out.println(fileDirectoryPath + " 目录存在");
// 获得文件列表
File[] fileList = fileDirectory.listFiles();
System.out.println("该目录下共有 " + fileList.length + " 个文件");
// 遍历所有文件
for (int i = 0; i < fileList.length; i++) {
// 原来的文件名
String oldName = fileList[i].getName();
// 新文件名
String newName = "三国杀节气图片-" + oldName;
// 检验新文件名是否与该目录下已经存在的文件重名
File newFile = new File(fileDirectoryPath + "/" + newName);
if (newFile.exists()) {
System.out.println("该名称[" + newName + "]已经存在!");
System.out.println("[" + oldName + "]--->[" + newName + "]修改失败");
} else {
// 修改成新名称
fileList[i].renameTo(newFile);
System.out.println("[" + oldName + "]--->[" + newName + "]修改成功");
}
}
} else {
System.out.println(fileDirectoryPath + " 不是目录路径");
}
} else {
System.out.println("File获取失败");
}
System.out.println("******程序运行结束******");
return;
}
}
修改效果展示
修改前
修改中
修改后
复用修改处
其实就两个地方修改就能复用
- 文件夹目录的路径
String fileDirectoryPath = "C:\\Users\\windows\\Desktop\\开场界面";
- 新文件名(按自己需要修改)
String newName = "新文件名" + oldName;
代码讲解
目录字符串
因为单个\
会视为转义符,因此可以改成反斜杠/
或者是\\
转义掉
String fileDirectoryPath = "C:/Users/windows/Desktop/开场界面";
// 反斜杠/
String fileDirectoryPath = "C:\\Users\\windows\\Desktop\\开场界面";
// 转义法\\
目录对象是否获取成功
fileDirectory.exists()
// exists()是否存在
fileDirectory.isDirectory()
// isDirectory()是否是目录对象
获取文件列表
File[] fileList = fileDirectory.listFiles();
获取文件名
String oldName = fileList[i].getName();
操作新文件名
根据自己的需求编写新文件名
检测新文件名是否与该目录下有同名文件
File newFile = new File(fileDirectoryPath + "/" + newName); if (newFile.exists()) { // ... }
- 若不重名,则修改
fileList[i].renameTo(newFile);