本站首页    管理页面    写新日志    退出


天堂之光 人间希望

你我共同品味

JAVA的浓香.

Linux的清芬.

«September 2025»
123456
78910111213
14151617181920
21222324252627
282930


我的分类(专题)

日志更新

最新评论

留言板

链接

联系我

msn:zhanglincon@hotmail.com


Blog信息
blog名称:
日志总数:99
评论数量:281
留言数量:4
访问次数:809485
建立时间:2005年11月17日




[java文件操作专题]列出指定目录下的文件
原创空间,  软件技术

zhanglincon 发表于 2008/2/16 14:48:53

package book.io; import java.io.File;import java.io.FilenameFilter; /** * File类的list方法返回该目录下的所有文件(包括目录)的文件名,文件名不含路径信息 * File类的listFiles方法返回目录下的所有文件(包括目录)的File对象 * FilenameFilter是文件名过滤器接口类,所有自定义的文件名过滤器必须实现该接口的accept方法 * @author Administrator * */public class ListFileUtil {  /**  * 这是一个内部类,实现了FilenameFilter接口,用于过滤文件   */ static class MyFilenameFilter implements FilenameFilter{   private String suffix = "";//文件名后缀    public MyFilenameFilter(String suffix){   this.suffix = suffix;  }  public boolean accept(File dir, String name) {      //如果文件名与指定的后缀相同便返回true   if(new File(dir,name).isFile()){    return name.endsWith(suffix);   }   else{    //如果是文件夹    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;  }    /*     * list方法返回该目录下的所有文件(包括目录)的文件名,文件名不含路径信息   *       String[] files = dirFile.list();   for(int i = 0; i < files.length; i++){    System.out.println(files[i]);   }  */    //列出文件夹下所有的文件,listFiles方法返回目录下的所有文件(包括目录)的File对象  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:/soft";  System.out.println(dir + " 目录下的内容:");  ListFileUtil.listAllFiles(dir);    System.out.println(dir + " 经过过滤后的内容:");  //新建一个文件名过滤器,参数为“.exe”  FilenameFilter mf = new ListFileUtil.MyFilenameFilter(".exe");  ListFileUtil.listFilesByFilenameFilter(mf, dir); }  }


阅读全文(3631) | 回复(0) | 编辑 | 精华
 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.189 second(s), page refreshed 144777249 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号