java中如何用File类批量修改文件名?

首先我上几个方法大家先看一看。

(1)list方法

在这里插入图片描述

注意了!!!

list()方法返回的是目录中文件的名字,返回类型是String。而listfiles()方法返回的是目录中的文件对象。list和filelist有参的构造方法则是为了过滤。

(2)接口 FileFilter

在这里插入图片描述

再次注意了!!!

filefilter接口的accept方法传的参数仅仅是这个目录或者文件的绝对路径,这个accept方法的作用是什么呢?举一个例子。如果我们要找到当前目录中隐藏的文件,那么就最好用这个方法。直接return pathname.ishide()==true;

(3) 接口 FilenameFilter

在这里插入图片描述

注意注意!!!

FilenameFilter接口的accept方法和Filefilter接口accept方法这两个的参数是不一样的,FilenameFilter的accept方法多了个String name参数,这是为什么呢?原因就是我们假设要找文件名中含有以什么开头以什么结尾的文件,就用这个。举个例子:return name.endsWith(".java")&&name.startsWith(“IO”);它的含义就是。。。应该看的懂吧!

总结:

找文件名用什么?我们用List方法,
找文件对象我们用什么?用listfile方法。

过滤隐藏的文件我们FileFilter接口的accept方法,反之用FilenameFilter接口。


进入正题:如何用File类批量修改文件名?

这是修改前的文件,如下图
在这里插入图片描述
批量修改文件名,也就是批量重命名。
将IODemo-04.java 改为 test-04.python

看代码实现:

package 测试;

import java.io.File;
import java.io.FileFilter;
import java.io.FilenameFilter;

/*
 * 批量修改文件名,也就是批量重命名。
 * IODemo-04.java 改为 test-04.python
 * 
 */
public class Test4 {
	public static void main(String[] args) {
		File dir=new File("D:\\Users\\xulihao\\Desktop\\t");
		File[] oldfile=dir.listFiles(new FilenameFilter() {
		//接口中的方法就用那么几次,推荐用匿名内部类。
			//得到当前文件的路径和名字
			@Override
			public boolean accept(File dir, String name) {
				// TODO Auto-generated method stub
				return name.endsWith(".java")&&name.startsWith("IO");
			}
		});
		for(File f:oldfile) {
			/*
			 * 在这里依次建立符合要求的新数组,
			 * 但是在建立新数组之前,首先要得到新数组的绝对路径和要修改的名字。
			 */
			String newname=change(f.getParent(),f.getName());//将路径和名字传入
			File newfile=new File(newname);//建立新数组。
			f.renameTo(newfile);//开始修改
		}
	}

	private static String change(String parent, String name) {
		// TODO Auto-generated method stub
		//IODemo-04.java     test-04.python
		String[] temp=name.split("-");
		temp[0]=temp[0].replaceAll("IODemo","test" );
		temp[1]=temp[1].replaceAll("java", "python");
		String newname=temp[0]+"-"+temp[1];
		return parent+"\\"+newname;//返回路径和新数组的名字
	}
}

看一下修改是怎样的:如下图
在这里插入图片描述

如何找到隐藏文件夹的路径???

接下来我再说一下,filefilter接口怎么用。举个例子:找到隐藏的文件夹。

首先我建立两个文件,然后隐藏。看下图。

在这里插入图片描述

然后我隐藏掉。

在这里插入图片描述

隐藏后看下图:

在这里插入图片描述

看代码如何实现:

package 测试;

//找到隐藏的文件
import java.io.File;
import java.io.FileFilter;

public class Test5 {
	public static void main(String[] args) {
		File dir = new File("D:\\Users\\xulihao\\Desktop\\t");
		File[] oldfile = dir.listFiles(new FileFilter() {
			@Override
			public boolean accept(File dir) {
				// TODO Auto-generated method stub
				return dir.isHidden();
			}
		});
		for (File f : oldfile) {
			System.out.println(f);
		}
	}
}

执行结果。

在这里插入图片描述

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值