⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 listfileutil.java

📁 本代码以J2SE 5.0为开发环境
💻 JAVA
字号:
package book.io;
import java.io.File;
import java.io.FilenameFilter;

public class ListFileUtil {
	
	/**
	 * 这是一个内部类,实现了FilenameFilter接口,用于过滤文件
	 */
	static class MyFilenameFilter implements FilenameFilter{
		//文件名后缀
		private String suffix = "";
		
		public MyFilenameFilter(String surfix){
			this.suffix = surfix;
		}
		public boolean accept(File dir, String name) {
			//如果文件名以surfix指定的后缀相同,便返回true,否则返回false
			if (new File(dir, name).isFile()){
				return name.endsWith(suffix);
			}else{
				//如果是文件夹,则直接返回true
				return true;
			}
		}
	}
	
	/**
	 * 列出目录下所有文件包括子目录的文件路径
	 * @param dirName	文件夹的文件路径
	 */
	public static void listAllFiles(String dirName){
		
		//如果dir不以文件分隔符结尾,自动添加文件分隔符。
		if (!dirName.endsWith(File.separator)){
			dirName = dirName + File.separator;
		}
		File dirFile = new File(dirName);
		//如果dir对应的文件不存在,或者不是一个文件夹,则退出
		if (!dirFile.exists() || (!dirFile.isDirectory())){
			System.out.println("List失败!找不到目录:" + dirName);
			return;
		}
		//列出源文件夹下所有文件(包括子目录)
		File[] files = dirFile.listFiles();
		for (int i = 0; i < files.length; i++){
			if (files[i].isFile()){
				System.out.println(files[i].getAbsolutePath() + " 是文件!");
			}else if (files[i].isDirectory()){
				System.out.println(files[i].getAbsolutePath() + " 是目录!");
				ListFileUtil.listAllFiles(files[i].getAbsolutePath());
			}
		}
	}
	/**
	 * 列出目录中通过文件名过滤器过滤后的文件。
	 * @param filter	文件名过滤器对象
	 * @param dirName		目录名
	 */
	public static void listFilesByFilenameFilter(FilenameFilter filter, String dirName){
		
		//如果dir不以文件分隔符结尾,自动添加文件分隔符。
		if (!dirName.endsWith(File.separator)){
			dirName = dirName + File.separator;
		}
		File dirFile = new File(dirName);
		//如果dir对应的文件不存在,或者不是一个文件夹,则退出
		if (!dirFile.exists() || (!dirFile.isDirectory())){
			System.out.println("List失败!找不到目录:" + dirName);
			return;
		}
		//列出源文件夹下所有文件(包括子目录)
		File[] files = dirFile.listFiles(filter);
		for (int i = 0; i < files.length; i++){
			if (files[i].isFile()){
				System.out.println(files[i].getAbsolutePath() + " 是文件!");
			}else if (files[i].isDirectory()){
				System.out.println(files[i].getAbsolutePath() + " 是目录!");
				ListFileUtil.listFilesByFilenameFilter(filter, files[i].getAbsolutePath());
			}
		}
	}

	public static void main(String[] args) {
		String dir = "C:/temp";
//		System.out.println((dir + "目录下的内容: "));
//		ListFileUtil.listAllFiles(dir);
//		
//		System.out.println();
//		System.out.println("经过过滤器过滤后的内容:");
//		//新建一个文件名过滤器。参数为".txt"
//		FilenameFilter myFilenameFilter = new ListFileUtil.MyFilenameFilter(".txt");
//		ListFileUtil.listFilesByFilenameFilter(myFilenameFilter, dir);
//		
		String[] t = new File(dir).list();
		for (int i=0; i<t.length; i++){
			System.out.println(t[i]);
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -