Java_IO_CommonsIO_listFiles方法获取文件夹子孙集

Java Commons IO: 使用listFiles遍历文件夹及其子文件夹
本文介绍了Java中Commons IO库的listFiles方法,用于遍历并获取指定文件夹及其所有子文件夹内的文件和子目录。通过示例代码展示如何使用此方法来遍历文件系统结构,获取完整的子孙文件集合。
package cn.CommonsIO;

import java.io.File;
import java.util.Collection;

import org.apache.commons.io.FileUtils;
import org.apache.commons.io.filefilter.DirectoryFileFilter;
import org.apache.commons.io.filefilter.EmptyFileFilter;
import org.apache.commons.io.filefilter.FileFilterUtils;
import org.apache.commons.io.filefilter.SuffixFileFilter;

public class TestListFiles {
	public static void main(String[] args) {
//		过滤空文件,不读子文件夹
		Collection<File> files = FileUtils.listFiles(new File("D:/eclipse-workspace/ProgramExercise"),
				EmptyFileFilter.NOT_EMPTY, null);
		for (File file : files) {
			System.out.println(file.getAbsolutePath());
		}
		System.out.println("--------------------------------------------------");

//		过滤空文件,读子文件夹
		files = FileUtils.listFiles(new File("D:/eclipse-workspace/ProgramExercise"), EmptyFileFilter.NOT_EMPTY,
				DirectoryFileFilter.INSTANCE);
		for (File file : files) {
			System.out.println(file.getAbsolutePath());
		}
		System.out.println("--------------------------------------------------");

//		文件后缀为.java,读子文件夹
		files = FileUtils.listFiles(new File("D:/eclipse-workspace/ProgramExercise"), new SuffixFileFilter("java"),
				DirectoryFileFilter.INSTANCE);
		for (File file : files) {
			System.out.println(file.getAbsolutePath());
		}
		System.out.println("--------------------------------------------------");

//		文件后缀为.java及.class,读子文件夹
		files = FileUtils.listFiles(new File("D:/eclipse-workspace/ProgramExercise"),
				FileFilterUtils.or(new SuffixFileFilter("java"), new SuffixFileFilter("class")),
				DirectoryFileFilter.INSTANCE);
		for (File file : files) {
			System.out.println(file.getAbsolutePath());
		}
		System.out.println("--------------------------------------------------");

//		文件后缀为.java且不为空,读子文件夹
		files = FileUtils.listFiles(new File("D:/eclipse-workspace/ProgramExercise"),
				FileFilterUtils.and(new SuffixFileFilter("java"), EmptyFileFilter.NOT_EMPTY),
				DirectoryFileFilter.INSTANCE);
		for (File file : files) {
			System.out.println(file.getAbsolutePath());
		}
		System.out.println("--------------------------------------------------");
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值