在D盘下有2021文件夹,在此文件夹里面含有文件和文件夹,将2021文件夹里面所有.jpg格式文件,按照序号全部更名为zhang001.jpg、zhang002.jpg、…等。
4条回答 默认 最新
- CrazyDragon_King 2022-04-06 00:14关注
public class FileRenamer { public static int index = 0; public static void main(String[] args) { String filepath = "D:/DragonFile/rename"; File src = new File(filepath); /*使用循环处理 * * 主要思路:首先对指定目录中的文件进行过滤,获取是文件,且扩展名为 .jpg的文件, * 然后对这些符号条件的文件进行特定的重命名操作。 * */ new FileRenamer().batchFileRename(src); System.out.println("执行完毕!"); } public void batchFileRename(File file) { if (file.isFile() && file.getName().contains(".jpeg")) { File dest = new File(file.getParent(), "zhang" + String.format("%03d.jpg", index++)); file.renameTo(dest); } else if (file.isDirectory()) { File[] files = file.listFiles(); for (File f : files) { batchFileRename(f); } } } }
专门给你写了一个程序(已经本地验证了),我来简述一下作用。
指定一个源目录,然后它会递归访问该目录下的所有文件和文件夹,对于文件,它会判断是否是 .jpg 结尾的文件;
对于目录,它会获取 该目录下所有的文件(文件和文件夹),然后执行上述同样的操作。但是不确定你这里的序号是什么,所以这里用了要给全局变量来记录文件的序号(这是我遍历的序号,可能不是你想要的)。如果你想要更加定制化的操作,可以再详细描述(认同了回答才行哦)。
这里需要注意一点,一般情况下不建议使用 File 类下 renameTo 方法,该方法会将源文件转为目标文件(所以它的实质是文件移动!),所以如果命名之后你的源文件就没了(原来的命名就丢失了),所以建议你可以先备份源文件,再执行该代码。或者你应该考虑使用文件复制操作,如果想要的话,也可以定制。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 metadata提取的PDF元数据,如何转换为一个Excel
- ¥15 关于arduino编程toCharArray()函数的使用
- ¥100 vc++混合CEF采用CLR方式编译报错
- ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
- ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
- ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
- ¥50 如何openEuler 22.03上安装配置drbd
- ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
- ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
- ¥15 Windows11, backspace, enter, space键失灵