假设你某天跟朋友出去玩,使用某数码相机拍摄了一些照片

但是当你回来的时候你发现所有的照片都是如下命名的

P1020335.JPG

P1020336.JPG

P1020337.JPG

P1020338.JPG

P1020339.JPG

这些文件名实际上是自动生成的,对你来说不方便看。

你现在希望将这些照片都改成“2016-4-15-i”

i表示第几张照片如

2016-4-15-1

2016-4-15-2

2016-4-15-3

请设计一个程序实现自动修改。

##思路

封装目录

获取该目录下所有的文件的File数组

遍历该File数组,得到每一个File对象

拼接一个新的名称,然后重命名即可

import java.io.File;

public class Java_2

{

public static void main(String[] args)

{

File file = new File("d:/photos");

File[] list = file.listFiles();

// 如果目录下文件存在

if (file.exists() && file.isDirectory())

{

for (int i = 0; i < list.length; i++)

{

//取文件名子存入name中

String name = list[i].getName();

// 截取.之前的字符串出来

int index = name.indexOf(".");

// 截取.JPG出来

int index2 = name.lastIndexOf(".");

String name3 = name.substring(index2);

// 拼接字符串

String newName = "2016-4-15-" + (i + 1) + name3;

//重命名

File dest = new File("d:/photos" + "/" + newName);

list[i].renameTo(dest);

System.out.println(dest.getName());

}

}

}

}

> 我在网上下载了一堆JAVA教学视频,在网上找过一堆批量重命名工具给他们重命名,发现这些工具要么是太机械,把非本类名字的文件也给重命名了,要么就是无法很好的实现其功能,所以写了一个简单的小程序,解决了我个人自己的需求

将F:\圣思源目录下

[北京圣思园Java培训教学视频]Java.SE.第八讲.理解面向对象程序设计.rar

[北京圣思园Java培训教学视频]Java.SE.第二十七讲.访问控制符详解.rar

..

/文件重命名为以下格式(仅去掉前缀)

Java.SE.第八讲.理解面向对象程序设计.rar

Java.SE.第二十七讲.访问控制符详解.rar

….

并且直接略去本类中不满足要求的文件夹或其他文件 并将修改好的文件放入D:/photos文件夹

package com.cskaoyan.java15;

import java.io.File;

public class JAVA_0119

{

public static void main(String[] args)

{

File file = new File("F:\\圣思源");

File[] list = file.listFiles();

// 如果目录下文件存在

if (file.exists() && file.isDirectory())

{

for (int i = 0; i < list.length; i++)

{

//取文件名子存入name中

String name = list[i].getName();

// 截取"]"之前的字符串出来

int index = name.indexOf("]");

String name2 = name.substring(index + 1);

//重命名并存入d:/photos

File dest = new File("d:/photos" + "/" + name2);

list[i].renameTo(dest);

System.out.println(dest.getName());

}

}

}

总结:用好File类方法和String类字符串拼接,基本都可以解决有一定规律的文件批量重命名的问题

String类可能使用的方法

substring(int beginIndex)

截取从beginIndex到末尾的字符串并返回

substring(int beginIndex, int endIndex)

截取从beginIndex到endIndex的字符串并返回

concat(String str)

将指定字符串str连接到此字符串的结尾

indexOf(int ch)

返回指定字符在此字符串中第一次出现处的索引

indexOf(String str)

返回指定子字符串在此字符串中第一次出现处的索引

lastIndexOf(int ch)

返回指定字符在此字符串中最后一次出现处的索引

lastIndexOf(int ch, int fromIndex)

返回指定字符在此字符串中最后一次出现处的索引,从指定的索引处开始进行反向搜索

length() 返回此字符串的长度

replace(CharSequence target, CharSequence replacement)

使用指定的字面值替换序列替换此字符串所有匹配字面值目标序列的子字符串

replaceAll(String regex, String replacement)

使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串

---------------------

原文:https://blog.csdn.net/qq_21923867/article/details/60882076

java 怎么做批量修改_JAVA实现批量修改文件名称相关推荐

  1. java解压zip异常_java解压zip文件示例

    若是使用Java自带的压缩工具包来实现解压缩文件到指定文件夹的功能,因为jdk提供的zip只能按UTF-8格式处理,而Windows系统中文件名是以GBK方式编码的,所以如果是解压一个包含中文文件名的 ...

  2. java http 下载网页代码_Java下http下载文件客户端和上传文件客户端实例代码

    Java下http下载文件客户端和上传文件客户端实例代码 发布于 2021-1-14| 复制链接 摘记: 一.下载客户端代码 ```java package javadownload; import ...

  3. java csv 单元格格式_java导出csv格式文件的方法

    本文实例为大家分享了java导出csv格式文件的具体代码,供大家参考,具体内容如下 导出csv格式文件的本质是导出以逗号为分隔的文本数据 import java.io.BufferedWriter; ...

  4. java 开发文档协作_Java 网络编程---分布式文件协同编辑器设计与实现

    目录: 第一部分:Java网络编程知识 (一)简单的Http请求 一般浏览网页时,使用的时Ip地址,而IP(Internet Protocol,互联网协议)目前主要是IPv4和IPv6. IP地址是一 ...

  5. java操作mysql导表_Java实现批量导入excel表格数据到数据库中的方法

    本文实例讲述了Java实现批量导入excel表格数据到数据库中的方法.分享给大家供大家参考,具体如下: 1.创建导入抽象类 package com.gcloud.common.excel; impor ...

  6. java批量上传图片_JAVA图片批量上传JS-带预览功能

    这篇文章就简单的介绍一个很好用的文件上传工具,批量带预览功能.直接贴代码吧,都有注释,很好理解. HTML页面 pageEncoding="UTF-8"%> 新增照片 var ...

  7. 用JAVA怎么做个视图_java问题 可以把用JFrame做出来的具有视图层的小程序放在桌面上当一个小软件吗?...

    当然可以. 先导出可执行jar包,再把jar包封装成exe即可. Step 1: 通过命令行或者IDE打jar包 Step 2: 使用laucher或者exe4j把可执行的jar包 接下来转载一篇具体 ...

  8. Java怎么做三端_Java三端分离开发在线教育平台

    第1章 课程项目整体概述(整体介绍及Eclipse,Maven,新浪SAE软件平台介绍) 系统通过maven构建一个portal站,在sae上部署,让同学们感受一下互联网应用的魅力: 1-1 --课程 ...

  9. java用户密码修改_java怎么实现修改用户名密码

    展开全部 package changepassword; import java.util.Scanner; public class Administrator{ String name;//姓名 ...

  10. java怎么做图形界面_java怎么做图形界面?实例分享

    学习java不仅要学会写程序,也要学会做图形界面,可是做图形界面对于一些刚学java的人员来说还是比较困难的,那么今天我们就给大家分享一下java做图形界面的方法. 首先我们来了解一下创建图形界面时常 ...

最新文章

  1. linux内存管理简介,Linux内存管理机制简介
  2. 换64位Win7了,感觉还行
  3. 我的文档目录环境变量_从.env文件中为NodeJS加载环境变量
  4. 数据增强 数据集扩充_数据扩充的抽象总结
  5. [css] 分析比较opacity: 0、visibility: hidden、display: none三者的优劣和适用场景
  6. xlsx文件打开乱码_Excel 2016 双击无法打开xlsx文件怎么办?
  7. java doprivileged_【转】关于AccessController.doPrivileged
  8. jsf el 表达式_JSF表达式语言– JSF EL
  9. vs中无法加入断点进行调试的解决方案
  10. 增值税发票综合服务平台常见问题解决方法(珍藏版)
  11. IBM服务器纽扣电池告警信息,IBM笔记本数字错误码信息.doc
  12. 叠积木(加权并查集)
  13. MyBatisPlus的使用--十数个案例足以让你步入mybatisplus
  14. 数据中台和数仓的关系
  15. 百度AI—人脸在线比对
  16. 868-超详细 DNS 协议解析
  17. 《2021中国开源发展蓝皮书》发布——中国开源接近世界先进水平
  18. 强化学习之贝尔曼方程
  19. centos 6.9界面中文显示英文或者英文界面改中文
  20. 自下而上语法制导翻译过程

热门文章

  1. 微信短视频小程序——视频封面,视频缩略图
  2. dw如何制作图片自动切换效果_如何在DREAMWEAVER中做出图片切换效果?
  3. nssa和stub_ospf协议stub和nssa区域说明
  4. UWP开发入门(八)——聊天窗口和ItemTemplateSelector
  5. 必备!万用表使用手册
  6. CentOS7--安装谷歌浏览器--详细步骤
  7. 毕业论文格式系列1 Word 图片交叉引用其题注
  8. html导航栏可以展开的下拉菜单,html导航栏下拉菜单如何制作
  9. AutoCAD .Net 创建椭圆Ellipse
  10. 模糊逻辑(Fuzzy Logic)