使用java批量重命名

提示:仅供参考,不喜勿喷


前言

例如:事情是这样的,我在某壁纸网站抓取了一大堆的壁纸,但是抓取下来的壁纸的比例不是很搭我的电脑,所以我就想用我微薄的知识来删除那些我不想要的图片,以及重命名


一、遍历文件中的所有图片

遍历文件夹中的所有文件(我的文件夹里面全是图片),这里尝试跑一下看能不能找到这些图片,并打印出来。我的文件夹内容如下:在这里插入图片描述

    String str = "D:\\wallpapers\\hot";
        int count=0;
        File f = new File(str);
        File[] files = f.listFiles();
        for (File file : files) {
            System.out.println(file.getName());
            ++count;
        }
        System.out.println("总共"+count+"张图片");
}

运行结果如下:
在这里插入图片描述

二、重命名图片的名字

遍历完成之后,只需要加上对应的操作即可;重命名代码如下

file.renameTo(new File(new_str)

最终效果为:
在这里插入图片描述

总结

对于删除不想要的图片,这里省略,因为我已经删除完了。当然思路和重命名差不多,以下是删除我不想要图片的代码
Tips:这里的删除不会进入回收站,直接删除

        String str = "D:\\wallpapers\\hot";//访问文件夹路径
        File f = new File(str);
        int count = 0;
        File[] files = f.listFiles();
        for (File file : files) {
            FileInputStream fileInputStream = new FileInputStream(file);
            BufferedImage bufferedImage = ImageIO.read(fileInputStream);
            fileInputStream.close();
            //宽度
            int width = bufferedImage.getWidth();
            //高度
            int height = bufferedImage.getHeight();
            float width_height = (float) width / (float) height;//宽度比高度

            if (width_height > 2) {
                System.gc();
                if (file.delete()) System.out.println(++count);
                else System.out.println("删除失败");
            }

只需要注意删除的时候,要把输入流关闭,以及调用一下gc就可以了。
重命名的代码如下:

String str = "D:\\wallpapers\\hot";//访问文件夹路径

        File f = new File(str);
        int count = 0;
        int count1=0;
        File[] files = f.listFiles();
        for (File file : files) {
            String new_str=str;
            int lengths=file.getName().length();
           new_str+="\\"+(++count)+file.getName().substring(lengths-4);
           //拼接需要重命名的字符串,注意file.getName().substring(lengths-4)为保留原有格式:例.jpg
           if(file.renameTo(new File(new_str))) ++count1;
           else System.out.println("重命名失败");
            System.gc();
        }
        System.out.println("重命名成功数量:"+(count1)+"    重命名失败数量:"+(count-count1));

ok,这就个人的见解,如有更好的更高效的改良方法,请不吝赐教。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用Java代码批量修改文件名,你可以按照以下步骤进行操作: 1. 首先,你需要确定要修改文件名的文件夹路径,并将其赋值给一个File对象。 2. 使用listFiles()方法获取文件夹中的所有文件,并将它们存储在一个File数组中。 3. 对于每个文件,你可以使用getName()方法获取文件的原始名称。 4. 然后,你可以使用indexOf()方法找到需要修改的位置。你可以使用不同的方法(如lastIndexOf())来找到不同的位置。 5. 使用substring()方法从文件名中截取你想要保留的部分,并在其前面添加所需的前缀。 6. 将修改后的文件名保存到一个新的File对象中,并使用renameTo()方法将原始文件命名为新的文件名。 7. 复上述步骤,直到对所有文件进行了修改。 下面是一个示例代码,演示了如何使用Java批量修改文件名称: ```java import java.io.File; public class RenameFiles { public static void main(String[] args) { // 定义文件夹路径 File folder = new File("d:\\aaa"); // 获取文件夹中的所有文件 File[] files = folder.listFiles(); // 遍历每个文件并修改文件名 for (File file : files) { if (file.isFile()) { String name = file.getName(); int index = name.indexOf(0); String newName = "【XXX项目】" + name.substring(index + 1); File newFile = new File(folder.getPath() + File.separator + newName); file.renameTo(newFile); System.out.println(newFile.getName()); } } } } ``` 上述代码将文件夹"d:\\aaa"中的所有文件名都添加了前缀"【XXX项目】"。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值