0


统计目录下的文件数量

文章目录


统计目录下的文件数量

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

一、深度优先搜索

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

publicstaticintgetFileNumber(String folderPath){File root =newFile(folderPath);if(!root.isDirectory()&&!root.isFile()){return0;}if(root.isFile()){return1;}Stack<File> stack =newStack<>();
        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++,遇到文件夹就往队列里放周而复始结束
在这里插入图片描述

publicstaticintgetFileNumber2(String folderPath){File root =newFile(folderPath);if(!root.isDirectory()&&!root.isFile()){return0;}if(root.isFile()){return1;}LinkedList<File> queue =newLinkedList<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;}
标签: 数据结构 算法

本文转载自: https://blog.csdn.net/xiaolu567/article/details/125619577
版权归原作者 小卢要刷力扣题 所有, 如有侵权,请联系我们删除。

“统计目录下的文件数量”的评论:

还没有评论