统计目录下的文件数量

简介: 统计目录下的文件数量

统计目录下的文件数量

给定一个文件目录的路径,
写一个函数统计这个目录下所有的文件数量并返回
隐藏文件也算,但是文件夹不算

一、深度优先搜索

用找做
根目录入栈栈中弹出一个目录,它下面有,e,f两个目录,先压e,后压f,
接下来f弹出,下级只有j,没有文件,
接下来e弹出,e下只有两个文件, count++变成6,
接下来h弹出,有一个文件count++,变成7个文件

    public static int getFileNumber(String folderPath) {
        File root = new File(folderPath);
        if (!root.isDirectory() && !root.isFile()) {
            return 0;
        }
        if (root.isFile()) {
            return 1;
        }
        Stack<File> stack = new Stack<>();
        stack.add(root);
        int files = 0;
        while (!stack.isEmpty()) {
            File folder = stack.pop();
            for (File next : folder.listFiles()) {
                if (next.isFile()) {
                    files++;
                }
                if (next.isDirectory()) {
                    stack.push(next);
                }
            }
        }
        return files;
    }

二、宽度优先遍历

准备一个队列从头进从尾出,
比如A这个文件夹,放入队列里
1)从队列里弹出一个东西,弹出的文件夹叫current,展开的过程中来的宽度优先遍历是文件的count++,如果遇到了文件夹,放入队列里去,又遇到文件夹,放入队列里去宽度有限遍历过程中遇到的文件就直接count++,往队列里只放文件夹
2)遇到文件就count++,遇到文件夹就往队列里放周而复始结束

    public static int getFileNumber2(String folderPath) {
        File root = new File(folderPath);
        if (!root.isDirectory() && !root.isFile()) {
            return 0;
        }
        if (root.isFile()) {
            return 1;
        }
        LinkedList<File> queue = new LinkedList<File>();
        queue.add(root);
        int files = 0;
        while (!queue.isEmpty()) {
            File folder = queue.poll();
            for (File next : folder.listFiles()) {
                if (next.isFile()) {
                    files++;
                }
                if (next.isDirectory()) {
                    queue.add(next);
                }
            }
        }
        return files;
    }
相关文章
|
1月前
如何计算目录内文件的数量
如何计算目录内文件的数量
52 4
如何计算目录内文件的数量
|
2月前
步骤 5统计每个子文件夹语音文件数量
【10月更文挑战第9天】步骤 5统计每个子文件夹语音文件数量.
35 1
|
6月前
|
机器学习/深度学习 数据处理 Python
指定文件夹按指定数量分组文件
这是一个Python脚本,使用`NStudyPy`库中的`PyFile`类将文件按指定数量分组。程序将图片从`F:\temp\cards`拆分到`F:\temp\target`下的4个文件夹,每组分别包含100、400、250和250个文件。如果文件不足,则提前结束。核心函数`random_split_s`随机拆分文件并创建目标文件夹,确保每个分组按预设数量分配文件。
82 2
|
7月前
|
监控 Linux
|
7月前
|
弹性计算 运维 Shell
打印文件或目录数量
【4月更文挑战第29天】
45 1
|
7月前
|
存储 数据管理 Serverless
Python实现:教你轻松统计文件夹下文件个数
Python实现:教你轻松统计文件夹下文件个数
|
7月前
|
JavaScript
nodejs统计文件/文件夹数量
nodejs统计文件/文件夹数量
|
C#
C# 统计指定文件夹下的文件
C# 统计指定文件夹下的文件 需要:统计某一指定文件夹下的文件数目和文件的全路径 示例代码: /// <summary> /// 统计文件夹内的文件 /// </summary> /// <param name="path">指定的文件夹路径</param> /// <returns></returns> ...
65 0
|
Linux Shell
打印文件或目录的数量
打印文件或目录的数量
58 1