统计文件夹下所有文件数量
统计文件夹下所有文件数量
给定一个文件目录的路径,写一个函数统计这个目录下所有的文件数量并返回,隐藏文件也算,但是文件夹不算
解题思路
深度优先遍历,如果是文件就统计数量,是文件夹就加到栈中,然后不断弹出,然后进行遍历统计.
代码演示
/**
* 深度优先遍历
* 计算文件夹下所有文件数量,文件夹不统计
* @param path
* @return
*/
public static int countFiles(String path){
File file = new File(path);
if (file.isFile()){
return 1;
}
//用stack 把文件压入栈中.进行深度优先遍历
Stack<File> stack = new Stack<>();
stack.push(file);
//记录文件数量
int ans = 0;
while (!stack.isEmpty()){
File cur = stack.pop();
for (File f : cur.listFiles()){
//文件进行统计
if (f.isFile()){
ans++;
}
//文件夹压入栈中,进行深度优先遍历
if (f.isDirectory()){
stack.push(f);
}
}
}
return ans;
}