zoukankan      html  css  js  c++  java
  • 一个Java写的批量重命名文件小程序

    今天学了一下java的File操作,然后乘着兴趣,写了一个可以批量处理文件命名的小程序,小程序还有一些不完美的地方,但胜在有趣。比如可以快捷更改你不想让别人看到的文件之类的...限个人使用,造成数据丢失后果自负哟。

    import java.io.File;
    import java.sql.Date;
    import java.util.Scanner;
    
    public class RenameTool {
        boolean useDefaultName = false;
        boolean useDefaultSuffix = false;
        Scanner sc = new Scanner(System.in);
    
        // 重命名方法
        private void reName() {
            
            String filePath=getPath();
            String diyName=getDiyName();
            String setDiySuffix = setDiySuffix();
            String suffix="";
            File file=new File(filePath);
            File[] filesList = file.listFiles();
            //判断要DIY的名字是否为空,空即默认以修改时间命名
            if (diyName==null) {
                useDefaultName=true;
            }
                
            if (useDefaultName) {//以修改时间格式命名
                //得到最后一次修改时间
                for (int i = 0; i < filesList.length; i++) {
                long lastModified = filesList[i].lastModified();
                Date date=new Date(lastModified);
                String dateName=date.toString();
                if (useDefaultSuffix){
                    //得到每个文件的后缀名
                    suffix=getSuffix(filesList[i]);
                }else{
                    suffix=setDiySuffix;
                }
                //文件名:路径+\+名+后缀,注意文件路径后面还有斜杠
                String newFileName=filePath+"\\"+dateName+"-"+(i+1)+suffix;
                File newFile=new File(newFileName);
                filesList[i].renameTo(newFile);
                System.out.print(filesList[i].getName()+"已修改为:");
                System.out.println(newFileName);
                }
            }else {    //以自定义格式命名
                for (int j = 0; j < filesList.length; j++) {
                    if (useDefaultSuffix){
                        //得到每个文件的后缀名
                        suffix=getSuffix(filesList[j]);
                    }else{
                        suffix=setDiySuffix;
                    }
                    String newFileName=filePath+"\\"+diyName+"-"+(j+1)+suffix;
                    File newFile=new File(newFileName);
                    System.out.print(filesList[j].getName()+"已修改为:");
                    filesList[j].renameTo(newFile);
                    System.out.println(newFileName);
                }
            }
        }
                    
        //得到文件路径
        private String getPath() {
            // java中有转移字符,如需输入双斜杠则输入四斜杠
            System.out.println("请输入你要批量修改文件的路径,格式:C:\\XXX\\XX");
            String path = sc.next();
            System.out.println(path);
            // sc.close();
            return path;
        }
        //自定义文件名,可以默认选择以修改时间为名
        private String getDiyName() {
            System.out.println("请输入要修改的新文件名格式(如想以时间命名则输入Y/y): ");
            String newName = sc.next();
            if (newName.equals("y") || newName.equals("Y")) {
                return null;
            }
    
            return newName;
        }
            //得到后缀名方法
        private String getSuffix(File file) {
    
            String fileName = file.getName();
            int length = fileName.length();
            // 用最右边的"."来查找后缀名
            int pointIndex = fileName.lastIndexOf(".");
            String suffix = fileName.substring(pointIndex, length);
    
            return suffix;
    
        }
            //如不想用以前的后缀名,可以自由更改
        private String setDiySuffix() {
            System.out.println("是否统一修改文件后缀名?确定请输入格式(),否则请输入N/n :");
            String input = sc.next();
            sc.close();
            if (input.equals("n") || input.equals("N")) {
                useDefaultSuffix = true;
                return null;
            } else {
                useDefaultSuffix = false;
                input="."+input;
                return input;
            }
    
        }
    
        // 提供静态方法
        public static void begin() {
            RenameTool t = new RenameTool();
            t.reName();
        }
        //主函数
        public static void main(String[] args) {
            RenameTool t = new RenameTool();
            t.reName();
        }
    
    }

    如果有时间,自己再写一个清理垃圾文件的小程序~~或者有些文件不能直接删除的,用来强力删除。

  • 相关阅读:
    23、mybatis学习——mybatis的二级缓存
    22、mybatis学习——mybatis的一级缓存
    21、mybatis学习——mybatis动态sql之<sql>抽取sql语句
    20、mybatis学习——<bind>绑定
    19、mybatis学习——mybatis的动态sql之<foreach>遍历传入的数组,集合和map
    18、mybatis学习——mybatis的动态sql之通过{<set>和<if>结合}或者{<trim>和<if>的结合}实现部分字段更新
    17、mybatis学习——mybatis的动态sql之<choose><when><otherwise>选择唯一条件
    16、mybatis学习——mybatis的动态sql之<if>、<where>和<trim>
    15、mybatis学习——鉴别器discriminator的使用
    [20181108]with temp as 建立临时表吗.txt
  • 原文地址:https://www.cnblogs.com/linchaohao/p/5154015.html
Copyright © 2011-2022 走看看