用JAVA怎么批量给文件夹里的文件从命名

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用JAVA怎么批量给文件夹里的文件从命名相关的知识,希望对你有一定的参考价值。

例如有主文件夹人,下面是两个文件夹男人,女人,男人和女人文件夹里都各有两个JPG文件,怎样可以用JAVA程序把男人和女人文件夹中的文件都命名为1.jpg,2.jpg?
这只是个例子,程序要到了上百个文件夹的时候都能使用

参考技术A import java.io.File;
import java.io.IOException;
import java.util.UUID;

public class MyTest
public static void main(String[] args) throws IOException
java.io.File file = new java.io.File("D:/test");
String dirPath = file.getAbsolutePath();//目录路径
if (file.isDirectory())
File[] files = file.listFiles();//获取此目录下的文件列表

long starttime = System.currentTimeMillis();

for (File fileFrom : files)
String fromFile = fileFrom.getName();//得到单个文件名
String toFileName;
int index;
index = fromFile.indexOf(".");
fromFile = fromFile.substring(index + 1);//得到后缀名。截取_后面的String
//这里要写个随机的数,我这里用的uuid你们可以用其他的
String sj=UUID.randomUUID().toString();
//重新拼个文件名
fromFile=sj+"."+fromFile;

if (index != -1)//防止有的文件名没有_

toFileName = dirPath + "\\" + fromFile;
File toFile = new File(toFileName);
if (fileFrom.exists() && !toFile.exists())
//开始更名
fileFrom.renameTo(toFile);




long endtime = System.currentTimeMillis();
System.out.println("Time:" + new Long(endtime - starttime));//耗时


参考技术B 大概的代码
public static void main(String[] args)
File baseDir = new File("你的目录");
String[] files = baseDir.list();
File tempFile;
for (int i = 0; i < files.length; i++)
tempFile = new File(files[i]);
tempFile.renameTo(new File("你的目录/"+i+".jpg"));



自己去改改就可以了本回答被提问者和网友采纳

DOS按规则批量重命名所有(子)目录下文件

一个路径下面有很多个很多级的子目录,里面都包含 R(??)*.jpg还有R(??)*.tif若干个,希望改名的时候整个路径下的所有子目录里的同编码的文件全部一起改了。

比如 R(20)百度知道开放平台.jpg 和 R(20)手机知道个人中心经验.tif 等等这些文件名都改成 R(20)咨询专家 改名后后缀名不变。

好像是要用echo吧。请问怎么写?
恩,希望用dos或批处理bat文件实现都行

一种方法就是做个批处理程序,内容就是无数个rename命令行
这么多命令行一个个敲不是累坏了,用excel处理。
第一步,命令行进入文件所在目录,输入命令:dir/b > c:\filename,在C盘就有一个保存目录下所有文件名的文本文件了。
第二步,用excel打开这个文件(打开对话框的文件类型要选择所有文件),所有的文件名就出现在excel的第一列了。
第三步,excel编辑这个文件做成批处理需要的格式,文件名前面插入一列,全部填上rename,第二列是原始文件名了,第三列是要修改成的文件名,按照你的需求来做吧,复制、查找替换什么的。
第四步,保存文件,保存对话框选择所有文件类型,文件名写成filename.bat。主要是扩展名写成bat,前面的名字随便了。
第五步,filename. bat拷贝到要处理的那个目录下,命令行进入这个目录,执行filename.bat。
完成。
其他需求,自己可以想想看。
参考技术A FOR /f "delims= tokens=1*" %a IN ('dir /a-d/b/s *.jpg') DO (
copy %a e:\01
)
FOR /f "delims= tokens=1*" %a IN ('dir /a-d/b/s *.tif') DO (
copy %a e:\02
)
参考技术B 下载个 应用软件不就好了吗?比如 filerename 批量改名专家

以上是关于用JAVA怎么批量给文件夹里的文件从命名的主要内容,如果未能解决你的问题,请参考以下文章

如何 批量 给 某个文件夹 里面 的几十个文件的名字加入个前缀或后缀

怎么批量去除文件名里的空格?

怎么在文件夹里统一修改文件前缀

DOS按规则批量重命名所有(子)目录下文件

Bat批处理:批量重命名包含指定名称文件夹里的指定文件

linux下怎么批量重命名这些文件