Java中批量修改文件名和文件夹名

背景

在看某些学习资料的时候总是有广告,有图片就算了居然还在文件夹上也打上了。既然是程序员,那就用程序解决问题吧。

遇到的问题

情况一:纯属没用的文件(直接删)

在这里插入图片描述

情况二:有用的文件,但是中间掺杂着广告(需要改)

在这里插入图片描述

情况三:最烦人的就是文件夹上也有(需要改)

在这里插入图片描述

解决代码

// 使用递归解决问题
 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);
                }
            }
        }

运行结果

在这里插入图片描述

说明

  • 在使用之前最好备份,以防止程序出错,误删重要文件
  • 文件读写情况有点复杂,需要根据实际情况调整
  • 引用或转发请标明作者
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值