统计目录下的文件数量

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

统计目录下的文件数量

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

一、深度优先搜索

用找做
根目录入栈栈中弹出一个目录,它下面有,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;
    }
相关文章
|
24天前
|
机器学习/深度学习 数据处理 Python
指定文件夹按指定数量分组文件
这是一个Python脚本,使用`NStudyPy`库中的`PyFile`类将文件按指定数量分组。程序将图片从`F:\temp\cards`拆分到`F:\temp\target`下的4个文件夹,每组分别包含100、400、250和250个文件。如果文件不足,则提前结束。核心函数`random_split_s`随机拆分文件并创建目标文件夹,确保每个分组按预设数量分配文件。
30 2
|
2月前
|
监控 Linux
|
2月前
|
弹性计算 运维 Shell
打印文件或目录数量
【4月更文挑战第29天】
25 1
|
2月前
|
存储 数据管理 Serverless
Python实现:教你轻松统计文件夹下文件个数
Python实现:教你轻松统计文件夹下文件个数
71 0
|
2月前
|
JavaScript
nodejs统计文件/文件夹数量
nodejs统计文件/文件夹数量
|
9月前
|
C#
C# 统计指定文件夹下的文件
C# 统计指定文件夹下的文件 需要:统计某一指定文件夹下的文件数目和文件的全路径 示例代码: /// <summary> /// 统计文件夹内的文件 /// </summary> /// <param name="path">指定的文件夹路径</param> /// <returns></returns> ...
36 0
|
10月前
|
Java
统计 jar 的数目
统计 jar 的数目
39 0
|
11月前
|
Linux Shell
打印文件或目录的数量
打印文件或目录的数量
41 1
|
Windows 流计算
减少搜索头文件的目录数
本文转自李云的博客:http://blog.csdn.net/hzliyun/article/details/9340843。 假设存在下图所示的项目目录结构: 如果存在如下包含头文件的代码,则大多的项目中需要通过“-I foo”和“-I bar”指明两个搜索头文件的目录。
861 0
查看文件夹内各文件数目
1 """ 2 This script shows how to count all files in a specific directory. 3 """ 4 5 import os 6 from collections import Counter 7 8 DIR = "...
967 0