背景
在看某些学习资料的时候总是有广告,有图片就算了居然还在文件夹上也打上了。既然是程序员,那就用程序解决问题吧。
遇到的问题
情况一:纯属没用的文件(直接删)
情况二:有用的文件,但是中间掺杂着广告(需要改)
情况三:最烦人的就是文件夹上也有(需要改)
解决代码
// 使用递归解决问题
public static void main(String[] args) throws IOException {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
System.out.println("请输入路径:");
String fileSrc = bufferedReader.readLine();
File srcFile = new File(fileSrc);
getAllFilePath(srcFile);
}
public static void getAllFilePath(File srcFile) {
//获取给定的File目录下所有的文件或者目录的File数组
File[] fileArray = srcFile.listFiles();
//遍历该File数组,得到每一个File对象
if (fileArray != null) {
for (File file : fileArray) {
//判断该File对象是否是目录
if (!file.isDirectory()) {
//不是:获取绝对路径输出在控制台
if (file.getName().startsWith("更多资料请加")) {
System.out.println("删除文件:" + file.getName());
file.delete();
} else if (file.getName().contains("更多资料")) {
String[] fileNameSplit = file.getName().split("[_,.]");
File newFile = new File(file.getParent() +"\\" + fileNameSplit[0] + "." + fileNameSplit[2]);
System.out.println("新文件名称为:" + newFile.getAbsoluteFile());
file.renameTo(newFile);
file.delete();
}
} else {
String[] fileNameSplit = file.getName().split("_");
File newFile = new File(file.getParent() +"\\" + fileNameSplit[0]);
file.renameTo(newFile);
System.out.println("新文件夹名字为:" + newFile.getAbsolutePath());
//是:递归调用
getAllFilePath(newFile);
}
}
}
运行结果
说明
- 在使用之前最好备份,以防止程序出错,误删重要文件
- 文件读写情况有点复杂,需要根据实际情况调整
- 引用或转发请标明作者