二、列出指定目录下的文件(包括子目录)
2012-04-23 18:26
162 查看
当File对象指向一个目录时,可以通过File对象来获取目录下的文件信息。
1、File类的list方法返回该目录下所有文件(包括目录)的文件名,文件名不包含路径信息。
2、File类的listFile方法返回该目录下所有文件(包括目录)的File对象
3、FilenameFilter是文件名过滤器接口类,所有自定义的文件名过滤器必须实现改接口的accept方法
实例演示
源码分析:
MyFilenameFilter类是一个自定义的文件名过滤器,实现了FilenameFilter接口。属性surfix表示文件过滤器支持的文件名后缀,在accept方法中,如果文件名的后缀为surfix,则返回true,表示文件能通过过滤器。如果是目录则直接通过。
listFilesByFilenameFilter方法列出目录下满足文件名过滤器的所有文件的绝对路径。在使用File的listFile方法时指定文件名过滤器对象,它只返回能通过文件名过滤器的File对象。
文章出处:飞诺网(www.diybl.com):http://www.diybl.com/course/3_program/java/javaxl/20071129/89523.html
1、File类的list方法返回该目录下所有文件(包括目录)的文件名,文件名不包含路径信息。
2、File类的listFile方法返回该目录下所有文件(包括目录)的File对象
3、FilenameFilter是文件名过滤器接口类,所有自定义的文件名过滤器必须实现改接口的accept方法
实例演示
package book.io; import java.io.File; import java.io.FilenameFilter; public class ListFileUtil ...{ /** *//** 这是一个内部类,实现了FilenameFilter接口,用于过滤文件 */ static class MyFilenameFilter implements FilenameFilter ...{ private String surfix = ""; //文件名后缀 public MyFilenameFilter(String surfix) ...{ this.surfix = surfix; } public boolean accept(File dir, String name) ...{ //如果文件名与surfix指定的后缀相同,便返回true,否则返回false if(new File(dir, name).isFile()) ...{ return name.endsWith(surfix); } 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 = "D:/work/JavaExample"; System.out.println(dir + " 目录下的内容:"); ListFileUtil.listAllFiles(dir); System.out.println(); System.out.println("经过过滤器过滤后的内容"); //新建一个过滤器,参数为".java" FilenameFilter myFilenameFilter = new ListFileUtil.MyFilenameFilter(".java"); ListFileUtil.listFilesByFilenameFilter(myFilenameFilter, dir); } }
源码分析:
MyFilenameFilter类是一个自定义的文件名过滤器,实现了FilenameFilter接口。属性surfix表示文件过滤器支持的文件名后缀,在accept方法中,如果文件名的后缀为surfix,则返回true,表示文件能通过过滤器。如果是目录则直接通过。
listFilesByFilenameFilter方法列出目录下满足文件名过滤器的所有文件的绝对路径。在使用File的listFile方法时指定文件名过滤器对象,它只返回能通过文件名过滤器的File对象。
文章出处:飞诺网(www.diybl.com):http://www.diybl.com/course/3_program/java/javaxl/20071129/89523.html
相关文章推荐
- Python扫描指定目录下(包括子目录)的文件
- 压缩指定目录下指定文件(包括子目录下的文件)
- python列出目录下指定文件与子目录的方法
- Linux下检测指定目录下的所有打开的文件(包括子目录)并按照原有的目录结构保存一个副本
- 获取指定目录下(包括子目录)的指定后缀的文件
- copy指定目录下包括子目录中所有的文件
- Python列出当前目录下所有含有指定名称的文件(包括路径)
- 获取指定目录下(包括子目录)的指定后缀的文件
- vb实现获取指定目录内的所有文件(包括子目录)
- Java遍历输出指定目录、树形结构所有文件包括子目录下的文件
- 查找指定目录下的特定文件 (包括子目录)
- java程序 一次改变指定目录下所有文件编码(包括子目录中的文件)
- javase——递归获取指定目录下(包括子目录)指定后缀的文件的文件名
- 列出目录下所有文件包括子目录的文件路径-采用递归方式
- [批处理]把指定文件复制到指定目录下的所有子目录下(包括子目录的下级目录)
- python列出目录下指定文件与子目录的方法
- 查找指定目录下所有文件(包括子目录)——使用递归
- 用java来实现列出指定目录下的文件,子目录下的文件也要输出
- LINUX 在 指定目录下,包括子目录,查找文件中内容匹配的字符串
- Python扫描指定目录下(包括子目录)的文件