java 获取指定目录下的所有文件

Java ,如何获取指定目录下的所有文件呢?

看代码:

Java代码  

  1. /*** 
  2.      * 获取指定目录下的所有的文件(不包括文件夹),采用了递归 
  3.      *  
  4.      * @param obj 
  5.      * @return 
  6.      */  
  7.     public static ArrayList<File> getListFiles(Object obj) {  
  8.         File directory = null;  
  9.         if (obj instanceof File) {  
  10.             directory = (File) obj;  
  11.         } else {  
  12.             directory = new File(obj.toString());  
  13.         }  
  14.         ArrayList<File> files = new ArrayList<File>();  
  15.         if (directory.isFile()) {  
  16.             files.add(directory);  
  17.             return files;  
  18.         } else if (directory.isDirectory()) {  
  19.             File[] fileArr = directory.listFiles();  
  20.             for (int i = 0; i < fileArr.length; i++) {  
  21.                 File fileOne = fileArr[i];  
  22.                 files.addAll(getListFiles(fileOne));  
  23.             }  
  24.         }  
  25.         return files;  
  26.     }  

 说明:上述方法采用了递归,所以包含子目录下的子目录中的文件。。。

测试代码:

Java代码  

  1. @Test  
  2.     public  void test_getListFiles(){  
  3.         ArrayList<File> files=FileUtils.getListFiles("d:\\Temp\\a\\a");  
  4.         SystemUtil.printFilesFilePath(files);  
  5.     }  

 输出结果:

d:\Temp\a\a\divided\merged\oracle学习笔记.doc

d:\Temp\a\a\divided\oracle学习笔记.doc_1_3kldv

d:\Temp\a\a\divided\oracle学习笔记.doc_2_3kldv

d:\Temp\a\a\divided\oracle学习笔记.doc_3_3kldv

d:\Temp\a\a\oracle学习笔记.doc

 

过滤前缀(只是获取指定目录下的文件,没有递归):

Java代码  

  1. /*** 
  2.      *  
  3.      * @param path 
  4.      * @param prefixStr 
  5.      *            :前缀名 
  6.      * @return 
  7.      */  
  8.     public static File[] getFilesByPathPrefix(File path, final String prefixStr) {  
  9.         File[] fileArr = path.listFiles(new FilenameFilter() {  
  10.             @Override  
  11.             public boolean accept(File dir, String name) {  
  12.                 // System.out.println("prefixStr:"+prefixStr);  
  13.                 if ((ValueWidget.isNullOrEmpty(prefixStr) || (dir.isDirectory() && name  
  14.                         .startsWith(prefixStr)))) {  
  15.                     return true;  
  16.                 } else {  
  17.                     return false;  
  18.                 }  
  19.             }  
  20.         });  
  21.         return fileArr;  
  22.   
  23.     }  
  24. /*** 
  25.      * 前缀名 
  26.      *  
  27.      * @param pathStr 
  28.      * @param prefixStr 
  29.      * @return 
  30.      */  
  31.     public static File[] getFilesByPathAndPrefix(String pathStr,  
  32.             final String prefixStr) {  
  33.         File path = new File(pathStr);  
  34.         return getFilesByPathPrefix(path, prefixStr);  
  35.     }  

 

过滤后缀名(只是获取指定目录下的文件,没有递归):

Java代码  

  1. /*** 
  2.      *  
  3.      * @param path 
  4.      * @param prefixStr 
  5.      *            :后缀名 
  6.      * @return 
  7.      */  
  8.     public static File[] getFilesByPathAndSuffix(File path,  
  9.             final String sufixStr) {  
  10.         File[] fileArr = path.listFiles(new FilenameFilter() {  
  11.             @Override  
  12.             public boolean accept(File dir, String name) {  
  13.                 // System.out.println("prefixStr:"+prefixStr);  
  14.                 if ((ValueWidget.isNullOrEmpty(sufixStr) || (dir.isDirectory() && name  
  15.                         .endsWith(sufixStr)))) {  
  16.                     return true;  
  17.                 } else {  
  18.                     return false;  
  19.                 }  
  20.             }  
  21.         });  
  22.         return fileArr;  
  23.   
  24.     }  
  25.   
  26. /*** 
  27.      * 后缀名 
  28.      *  
  29.      * @param pathStr 
  30.      * @param sufixStr 
  31.      * @return 
  32.      */  
  33.     public static File[] getFilesByPathAndSuffix(String pathStr,  
  34.             final String sufixStr) {  
  35.         File path = new File(pathStr);  
  36.         return getFilesByPathAndSuffix(path, sufixStr);  
  37.     }  
时间: 2024-09-28 01:02:53

java 获取指定目录下的所有文件的相关文章

java删除指定目录下所有空文件夹的方法_java

本文实例讲述了java删除指定目录下所有空文件夹的方法.分享给大家供大家参考,具体如下: package com.func; import java.io.File; import java.util.ArrayList; import java.util.List; /** * 删除指定目录下的所有空文件夹 * * @author zdw * */ public class FileUtils { List<File> list = new ArrayList<File>();

python获取指定目录下所有文件名列表的方法

  本文实例讲述了python获取指定目录下所有文件名列表的方法.分享给大家供大家参考.具体实现方法如下: 这里python代码实现获取文件名列表的功能,可以指定文件中包含的字符,方便提取特定类型的文件名列表: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 #

目录名称-递归遍历指定目录下的所有文件,依次按目录的名称与文件的名称排序

问题描述 递归遍历指定目录下的所有文件,依次按目录的名称与文件的名称排序 递归遍历指定目录下的所有文件,按依次按目录的名称与文件排序, 首先同一级目录的按目录名称排序,然后按文件的名称排序. 思路一:递归获取到所有文件后,根据件的全路径作在比较器中比较排序(file0.getAbsolutePath().compareTo(file1.getAbsolutePath())),这样可能不会很准.. 求大神支招啊! 想要的排序结果如下: d:/update/spc333/1/aa.txt d:/up

python获取某目录下的所有文件和子目录-os.listdir

有时候需要获取某目录下的所有文件和子目录,从stackoverflow搜到了一段代码,需要时可以使用. 在Python中可以使用os.listdir()函数获得指定目录中的内容.其原型如下所示.   os.listdir(path)   其参数含义如下.path 要获得内容目录的路径.以下实例获得当前目录的内容.   >>> import os    >>> os.listdir(os.getcwd())    获得当前目录中的内容   ['dde.pyd', 'lic

PHP删除指定目录下的所有文件

/**  * 删除指定目录下的所有文件  *  * @param String $dir  要进行操作的路径  * 适合范围,只有用于文件夹内不存在子文件夹的情况下  * 来源  DZ  * 小佳(www.phpcina.cn)  整理 于 2006-06-26   */ function dir_clear($dir) {     $directory = dir($dir);                //创建一个dir类(PHP手册上这么说的),用来读取目录中的每一个文件     wh

获取某目录下的所有文件(包括子目录下文件)的数量(C#)

以前写过一个通过计算目录遍历所有文件和子目录的方法来获得某目录下的文件个数,结果发现速度极慢,远远不及系统本身目录属性里边显示的速度. int fileNum = 0;/**//// <summary>/// 获取某目录下的所有文件(包括子目录下文件)的数量/// </summary>/// <param name="srcPath"></param>/// <returns></returns>public in

linux shell 遍历指定目录下的所有文件夹

在linux 中,如何遍历指定目录下的所有文件夹呢? 要求能搜索结果中包含隐藏文件夹 脚本名:ergodic_folder.sh 脚本内容: Shell代码   #!/bin/sh   list_alldir(){       for file2 in `ls -a $1`       do           if [ x"$file2" != x"." -a x"$file2" != x".." ];then       

PHP在获取指定目录下的目录,在获取的目录下面再创建文件,多平台_php技巧

复制代码 代码如下: //取得指定文件夹的目录名称 function get_dir_name($dir_path,$file) { $dirpath = $dir_path; $dir = scandir($dirpath); foreach ($dir as $key=>$value) { if (is_dir($dirpath.'/'.$value) && $value != '.' && $value != '..') { //echo $dirpath.'/

java 用递归获取一个目录下的所有文件路径的小例子_java

复制代码 代码如下: private List<String> ergodic(File file,List<String> resultFileName){        File[] files = file.listFiles();        if(files==null)return resultFileName;// 判断目录下是不是空的        for (File f : files) {            if(f.isDirectory()){// 判