看这篇文字之前,先看这篇https://blog.csdn.net/qq_36923376/article/details/105746474,起初使用python写的,后来用java也写了一下。所以这里直接贴代码了,如下:
三个java文件,都在同一个包下。
- BatchRename.java
- DirectoryAccept.java
- FileAccept.java
package batchrename;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.Scanner;
public class BatchRename {
public static void main(String args[]) {
System.out.print("请输入根目录:");
Scanner reader = new Scanner(System.in);
String rootDirectory = reader.next();
File rootFile = new File (rootDirectory);
DirectoryAccept directoryAccept = new DirectoryAccept();
File fileArray[] = rootFile.listFiles(directoryAccept);
for(File file:fileArray) {
FileAccept fileAccept = new FileAccept();
fileAccept.setExtendName("flv");
File[] oldFile = file.listFiles(fileAccept);
fileAccept.setExtendName("info");
File[] infoFile = file.listFiles(fileAccept);
String newName = getNewName(infoFile[0]);
File newFile = new File(file,newName+".flv");
if(oldFile[0].renameTo(newFile))
System.out.println("修改成功");
}
}
public static String getNewName(File file) {
char[] c = new char[256];
int n = -1;
String content = "";
FileReader in;
try {
in = new FileReader(file);
while((n=in.read(c))!=-1) {
String str = new String(c);
content+=str;
}
in.close();
} catch (IOException e) {
e.printStackTrace();
}
String regex = "\"PartName\":\"";
String[] str = content.split(regex);
String newName = str[1].substring(0,str[1].indexOf("\""));
return newName;
}
}
package batchrename;
import java.io.File;
import java.io.FilenameFilter;
public class DirectoryAccept implements FilenameFilter {
@Override
public boolean accept(File dir, String name) {
// TODO Auto-generated method stub
return new File(dir,name).isDirectory();
}
}
package batchrename;
import java.io.File;
import java.io.FilenameFilter;
public class FileAccept implements FilenameFilter {
private String extendName;
public void setExtendName(String name) {
extendName = "."+name;
}
@Override
public boolean accept(File dir, String name) {
// TODO Auto-generated method stub
return name.endsWith(extendName);
}
}
遇到的问题: 关于renameTo方法的用法https://blog.csdn.net/qq_36923376/article/details/105755713
本文介绍如何使用Java实现批量重命名B站视频文件。作者分享了从Python转为Java编写此功能的过程,并提供了相关代码示例,包括三个关键类:BatchRename.java、DirectoryAccept.java和FileAccept.java。在实现过程中,作者遇到了renameTo方法的使用问题,并给出了详细解决方法。
133

被折叠的 条评论
为什么被折叠?



