舍友一把5V5后,我成功开发了可视化文件批量修改后缀的野生脚本!!!
舍友每次从Edge保存的好看的壁纸都是.jfif格式的,发给别人后查看还得改格式,于是动手写了个文件后缀可以批量查看以及修改的野生脚本
1.输入不限文件或文件夹
2.可查阅,目录结构可视化
3.路径保留
效果
直接上图
APICode:
package _tools;
import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
/****
*
*@Author:C_Block
*Function:文件后缀批量修改器
*
****/
public class FileReName{
private boolean flag=false;
public FileReName() {
}
protected void init(){
System.out.println("运行过程中,所陈列的File:与_字符之间的空格表示子目录的缩进!");
Scanner sc=new Scanner(System.in);
System.out.println("Step1:请输入父目录路径名,例如d:\\java");
File file=new File(sc.nextLine());
System.out.println("Step2:请输入欲更改的后缀,例如jpg,没有则输入空格");
String reg=".*\\."+sc.nextLine()+"$";
if(!showDirStructure(file,reg)){
System.out.println("null无此后缀文件!");
return;
}
System.out.println("Step3:请输入新的后缀,例如bmp");
Rename(file,sc.nextLine());
sc.close();
}
List<String> list= new ArrayList<>();
String dir="+";
String wj="_";
String space="";
private boolean showDirStructure(File file,String reg){
if(file.isDirectory()){
File[] files=file.listFiles();
System.out.println(space+"-------在"+dir+file.getName()+"目录下找得如下文件------");
space+=" ";
assert files != null;
Arrays.sort(files);
for (File f:files){
showDirStructure(f,reg);
}
space="";
}
else{
String catch_= file.getName();
if(catch_.matches(reg)||(!(catch_.matches(".*\\.[a-z]{0,5}$"))&&(catch_+". ").matches(reg))){
flag=true;
System.out.println("File:"+space+wj+file.getName());
if((catch_+". ").matches(reg)){
catch_+=".jpg";
File newFile=new File(file.getParent(),catch_);
file.renameTo(newFile);
System.out.println("文件无后缀,已经默认修i改为.jpg格式,若欲修改请继续输入!");
}
list.add(catch_);
}
}
return flag;
}
private void Rename(File file,String newEnding){
if(file.isDirectory()){
File[] files=file.listFiles();
assert files != null;
for (File f:files){
Rename(f,newEnding);
}
}
for(String name:list){
if(file.getName().equals(name)){
String newName = name.substring(0,name.lastIndexOf("."))+'.'+newEnding;
File newFile = new File(file.getParent(),newName);
System.out.println(newFile);
file.renameTo(newFile);
}
}
}
}
TestCode:
package _tools;
public class TestTool {
public static void main(String[] args) {
new FileReName().init();
}
}
代码也可以去gitee上下载:https://gitee.com/elegant-and-vulgar-doctor/file-re-name.githttps://gitee.com/elegant-and-vulgar-doctor/file-re-name.git