whyclxw
2025-03-28 cc86bb05bba08200a2e2bc301bb835f52a708a1f
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
51
52
53
54
55
56
57
58
59
60
61
62
package com.whyc.dto;
 
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
 
public class FileOpreate {
 
    /**
     * 获取指定文件夹下所有文件,不含文件夹里的文件
     *
     * @param dirFilePath 文件夹路径
     * @return
     */
    public static List<File> getAllFile(String dirFilePath) {
        if (dirFilePath.isEmpty())
            return null;
        return getFileList(new File(dirFilePath));
    }
 
 
    /**
     * 获取指定文件夹下所有文件,不含文件夹里的文件
     *
     * @param dirFile 文件夹
     * @return
     */
    public static List<File> getFileList(File dirFile) {
        // 如果文件夹不存在或着不是文件夹,则返回 null
        if (Objects.isNull(dirFile) || !dirFile.exists() || dirFile.isFile())
            return null;
 
        File[] childrenFiles = dirFile.listFiles();
        if (Objects.isNull(childrenFiles) || childrenFiles.length == 0)
            return null;
 
        List<File> files = new ArrayList<>();
        for (File childFile : childrenFiles) {
            // 如果是文件,直接添加到结果集合
            if (childFile.isFile()) {
                files.add(childFile);
            }
            //以下几行代码取消注释后可以将所有子文件夹里的文件也获取到列表里
            else {
                // 如果是文件夹,则将其内部文件添加进结果集合
               List<File> cFiles = getFileList(childFile);
                if (Objects.isNull(cFiles) || cFiles.isEmpty()) continue;
                files.addAll(cFiles);
            }
        }
        return files;
    }
 
    public static void main(String[] args) {
        String filePath="D://fileTest";
        List<File> list=getAllFile(filePath);
        for (File file :list) {
            System.out.println(file.getPath()+"       "+file.getName());
        }
    }
}