批量重命名图片

305 阅读1分钟

src=http___5b0988e595225.cdn.sohucs.com_q_70,c_zoom,w_640_images_20200410_21a2a93594a24f559f1b7ea79b2343d6.gif&refer=http___5b0988e595225.cdn.sohucs.gif

这是我参与8月更文挑战的第 1 天,活动详情查看:8月更文挑战

  • 产生原因:
  • 为了在CSDN上传一系列图片,但是。上传第一张在最下方。。🙃
  • 所以写了个方法批量重命名图片
  • 解决方案:
  • 为了将原来的图片插入到csdn时候是正序,所以修改图片名。需要把1.png变成最大,36变成最小。

处理方法:先截取,因为我的图片前面还有一大堆08191643…节点设置为未被访问_36。先把数字截取出来。因为只有36张图片,所以直接用36减当前数值得到差n,再用36加上差n,这样获得了重新排序


原图

1.png

修改后的名字变为这样:

2.png


代码如下:

    public void test(){
        //修改图片的名字
        //拿到文件夹的路径
        String folderPath = "E:\\picture";
        File file = new File(folderPath);
        String dirPath = file.getAbsolutePath();
        if (file.isDirectory()) {
            File[] files = file.listFiles();
            //获取此目录下的文件列表
            for (File fileFrom : files) {
                //得到单个文件名
                String fromFile = fileFrom.getName();
                int num = 0;
                int newnum = 0;
                int p = 0;
                if (fromFile.contains("_")) {
                    fromFile = fromFile.substring((fromFile.lastIndexOf("_")+1));
                    fromFile = fromFile.substring(0,fromFile.lastIndexOf("."));
                    //要修改的新名字
                    num = Integer.parseInt(fromFile);
                    newnum = 36-num;
                    p = 36+newnum;
                    fromFile = fromFile.replace(fromFile, String.valueOf(p));
                    String toFileName = dirPath + "/" + fromFile;
                    //文件名的格式还是之前的格式
                    File toFile = new File(toFileName+".jpg");
                    if (fileFrom.exists() && !toFile.exists()) {
                        //开始更名
                        fileFrom.renameTo(toFile);
                        System.out.println(toFile);
                    }
                }
            }
        }

    }