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.     }  
相关文章
|
24天前
|
Java
有关Java发送邮件信息(支持附件、html文件模板发送)
有关Java发送邮件信息(支持附件、html文件模板发送)
25 1
|
28天前
|
Java
java中替换文件内容
java中替换文件内容
14 1
|
29天前
|
Java API
Java中文件与输入输出
Java中文件与输入输出
|
30天前
|
Java
java实现遍历树形菜单方法——映射文件VoteTree.hbm.xml
java实现遍历树形菜单方法——映射文件VoteTree.hbm.xml
9 0
|
1月前
|
Java
java程序导出堆文件
java程序导出堆文件
|
26天前
|
Java 数据库连接 API
Java 学习路线:基础知识、数据类型、条件语句、函数、循环、异常处理、数据结构、面向对象编程、包、文件和 API
Java 是一种广泛使用的、面向对象的编程语言,始于1995年,以其跨平台性、安全性和可靠性著称,应用于从移动设备到数据中心的各种场景。基础概念包括变量(如局部、实例和静态变量)、数据类型(原始和非原始)、条件语句(if、else、switch等)、函数、循环、异常处理、数据结构(如数组、链表)和面向对象编程(类、接口、继承等)。深入学习还包括包、内存管理、集合框架、序列化、网络套接字、泛型、流、JVM、垃圾回收和线程。构建工具如Gradle、Maven和Ant简化了开发流程,Web框架如Spring和Spring Boot支持Web应用开发。ORM工具如JPA、Hibernate处理对象与数
90 3
|
29天前
|
Java
使用java将字符串写入到指定的文件中
使用java将字符串写入到指定的文件中
11 0
|
29天前
|
XML Java 数据格式
使用java解析XML文件的步骤
使用java解析XML文件的步骤
10 0
|
29天前
|
Java
Java文件类
Java文件类
6 0
Java文件类
|
1月前
|
Java
java base64转doc文件
以下是使用Java进行Base64转换的例子: 1. 使用Java Base64工具类进行转换 ```java // 导入相关包 import java.util.Base64; import java.io.FileOutputStream; import java.io.IOException; // 将Base64字符串转换为字节数组 byte[] decodedBytes = Base64.getDecoder().decode(base64String); // 将字节数组写入到文件中 try (FileOutputStream fos = new FileOutputStrea