批量重命名文件的小工具
Renamer是一个帮助您整理硬盘文件的小工具。这次的软件使用JAVA语言开发。
Renamer的主要功能:
1.按照指定的规则重命名文件,如IMG1,IMG2,IMG3;
2.添加或删除文件的前缀后缀,如[tta.cn]pack → pack;
3.批量修改文件扩展名,并提供一种智能修改文件扩展名的模式,通过读取文件头信息获取文件本来的扩展名,比如一个图片下下来是JPG的扩展名,但是通过读取文件头信息发现是一个gif文件,使用Renamer批量识别文件真实的扩展名,以帮助您的浏览编辑工具更好的识别文件。
目前Renamer支持约30种文件扩展名格式,即使无法识别,也会保留文件原本的文件扩展名。
展示:
源代码:
import Renamer.GetTypeByHead;
import Renamer.RenamerUtil;
import java.io.*;
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;
public class Main extends RenamerUtil {
static Scanner input = new Scanner(System.in);
/**
* 扫描到的文件列表
*/
static List<File> fileList;
/**
* 修改后的文件列表
*/
static List<File> newFileList = new LinkedList<>();
public static void main(String[] args) {
//获取扫描的文件夹路径
System.out.println("欢迎使用\"批量重命名\"小工具 By.偃笙");
System.out.println("输入0退出程序");
System.out.print("请输入文件夹路径:");
String dir = input.next();
if("0".equals(dir)){
System.exit(0);
}
//获取文件夹列表
fileList = getFileList(dir);
if (fileList.isEmpty()) {
System.out.println("未搜索到文件");
input.nextLine();
main(args);
return;
}
//遍历文件夹列表
int index = 1;
System.out.println("当前文件夹列表如下:");
for (File element : fileList) {
System.out.println(index + " & " + element.getName());
index++;
}
choiceMode();
}
public static void choiceMode() {
System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
System.out.println(">请选择一种文件重命名模式");
System.out.println(">1.按指定的规则修改 如:IMG1.jpg IMG2.jpg IMG3.jpg");
System.out.println(">2.添加/删除前缀后缀 如:[tt科技]工具包.zip → 工具包.zip");
System.out.println(">3.修改文件扩展名 如 1.jpg → 1.png");
System.out.println(">0.返回");
System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
System.out.print("请输入模式ID:");
//获取模式ID
int mode = 0;
try {
mode = input.nextInt();
if (mode < 0 || mode > 3) {
throw new Exception();
}
} catch (Exception e) {
input = new Scanner(System.in);
System.out.println("请输入正确的数字!");
System.out.println("输入任意内容继续. . .");
input.next();
choiceMode();
return;
}
//判断输入的模式ID
switch (mode) {
case 0:
main(null);
break;
case 1:
mode1();
break;
case 2:
mode2();
break;
case 3:
mode3();
break;
}
main(null);
}
public static void mode1() {
System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
System.out.println(">模式1:按指定的规则修改");
System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
System.out.println("星号*为标识符,替代文件的顺序ID");
System.out.println("例:IMG* → IMG1.jpg IMG2.jpg");
System.out.println("输入\"0\"返回");
System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
System.out.print("请输入规则(请勿输入后缀名):");
//获取规则
String rule = input.next();
if ("0".equals(rule)) {
choiceMode();
return;
}
//判断标识符位置
int identify = rule.indexOf("*");
if (identify == -1) {
System.out.println("找不到标识符");
System.out.println("输入任意内容继续. . .");
input.next();
mode1();
return;
}
System.out.print("请输入文件顺序ID(输入1则从1开始):");
int index = input.nextInt();
//获取修改后的文件名列表
for (