批量重命名音乐文件
从酷狗音乐下载音乐时,发现下载的音乐的文件名都是以歌手开头,看着很难受,而且在酷狗的下载设置里没有下载的文件名设置。
简而言之这个小程序就是将文件名为歌手 - 音乐名.后缀
的音乐文件批量修改为音乐名-歌手.后缀
的样式
先看下效果
思路
- 获取音乐文件
- 利用正则改名
- 文件改名
- 简单地设计一下界面
详细步骤
1. 先设计核心代码,重命名
例如周杰伦 - 青花瓷.flac
文件就需要把他改为青花瓷-周杰伦.flac
(修改之前的文件名是包含空格的)
public static String getNewName(String oldName) {
String newName;
//去掉字符串的所有空格
newName = oldName.replaceAll(" ", "");
//分离歌手,歌名,文件后缀
String[] results = newName.split("-|\\.");
//连接新的字符串
if (results.length == 3) {
newName = results[1] + "-" + results[0] + "." + results[2];
}
return newName;
}
本方法传入的形参为要修改的文件名,返回修改后的文件名
2. 设计重命名单个文件的方法
public static void rename(File file, String fileName) {
//文件类型不是目录
if (!file.isDirectory()) {
File newFile = new File(file.getParent(), fileName);
file.renameTo(newFile);
System.out.println("修改完成:" + newFile.getName());
}
}
传入的形参为文件和修改后的文件名
3. 重命名音乐目录下的文件
public static void renameMusicDirectory(File directoryFile) {
if (directoryFile.isDirectory()) {
File[] results = directoryFile.listFiles();
for (int i = 0; i < results.length; i++) {
if (results[i].isFile()) {
String newName = getNewName(results[i].getName());
System.out.println("修改前的名称:" + results[i].getName());
rename(results[i], newName);
}
}
}
}
参数只需传入文件目录即可,然后循环调用单个文件重命名的方法即可
源码已上传至本人的GitHub仓库 ,欢迎访问。
也可以花费5个积分通过CSDN下载,支持我一下!