• 批量修改 文件后缀


    package cn.com.yitong;

    import java.io.File;
    import java.util.Scanner;

    public class Main {
    public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    System.out.println("请输入要修改文件后缀名的文件夹:");
    String path = sc.nextLine();
    System.out.println("请输入修改前的后缀名:");
    String from = sc.nextLine();
    System.out.println("请输入修改后的后缀名:");
    String to = sc.nextLine();

    reName(path, from, to);
    System.out.println("全部修改完成!!!");
    }

    public static void reName(String path, String from, String to) {
    File f = new File(path);
    File[] fs = f.listFiles();
    for (File subFile : fs) {
    // 如果文件是文件夹则递归调用批量更改文件后缀名的函数
    if (subFile.isDirectory()) {
    reName(subFile.getPath(), from, to);
    } else {
    String name = subFile.getName();
    if (name.endsWith(from)) {

    subFile.renameTo(new File(subFile.getParent() + "/" + name.substring(0, name.indexOf(from)) + to));
    /*
    * 可在Java API中的File类中查询renameTo的方法
    * renameTo可以用来给File改名字,改路径
    * 他需要的参数也是一个File对象,表示要把当前文件重命名(移动)为哪个文件
    * 如果目标文件存在,则此方法返回false
    *
    * renameTo不会产生新文件,他只是把文件移动一下,或者改个名字
    *
    * 实际上,这个方法的具体表现与操作系统,和文件系统都有关系.
    * 它不能把一个文件从一个文件系统移动到另一个文件系统,例如: 不能把c:a.txt renameTo 为
    * d:a.txt 因为c: d:属于不同的盘(文件系统) 但可以把c:a.txt renameTo
    * c:systemb.txt (路径,文件名都可以变,但还是在同一个分区)
    * linux,unix的分区也是同样的道理,只不过不像Windows这么明显一眼就看出来不是同一个分区
    *
    * 你可以在系统中试一下: 在同一个分区内,剪切一个文件 ,在粘贴到另一个位置,这是瞬间完成的,无论文件多么大.
    * 实
    *际上没有copy操作,java的renameTo就是这个意思 不同分区的话,那就得先复制,然后删除源文件
    *
    *F:wanda-yingxiaomkt-platform
    */
    }
    }
    }
    }

    }

  • 相关阅读:
    辅助方法
    扩展方法学习发展之路
    对IOC模式与容器Autofac在MVC里面的一些用法
    Qlikview Session Recovery
    SNOY VAIO 索尼电脑亮度自动变暗
    EXCEL2010数据挖掘插件 下载地址
    Ubuntu20.04 源码安装完应用 如何将应用程序添加到启动器
    flask + flask_restplus+ blueprints 脚手架
    闭包
    操作方法
  • 原文地址:https://www.cnblogs.com/jishumonkey/p/13885424.html
Copyright © 2020-2023  润新知