Java语言程序设计基础篇_编程练习题*18.29(某个目录下的文件数目)

题目:*18.29(某个目录下的文件数目)

编写一个程序,提示用户输入一个目录,然后显示该目录下的文件数。

和上一题(18.28)的思路差不多,把找到文件后累加大小到变量变成计数+1即可。

Java语言程序设计基础篇_编程练习题*18.28 (非递归目录大小)-CSDN博客

代码示例

编程练习题18_29FileCount.java

java 复制代码
package chapter_18;

import java.io.File;
import java.util.ArrayList;
import java.util.Scanner;

public class 编程练习题18_29FileCount {
	public static void main(String[] args) {
		System.out.print("Enter a directory or a file: ");
		Scanner input = new Scanner(System.in);
		String directory = input.nextLine().replaceAll("\\\\", "//");
		
		System.out.println("There are "+FileCount(new File(directory)) + " files");
		input.close();
	}
	public static int FileCount(File file){
		int count = 0;
		ArrayList<File> files = new ArrayList<File>();
		files.add(file);
		while(!files.isEmpty()) {
			ArrayList<File> newList = new ArrayList<File>();
			for(File f : files) {
				if(f.isFile())
					count ++;
				else {
					File[] fileList = f.listFiles();
					if(fileList != null) {
						for(File f2:fileList){
							if(f2.isDirectory())
								newList.add(f2);
							else count ++;
						}
					}
				}
			}
			files = newList;
		}
		return count;
	}

}
输出结果
java 复制代码
Enter a directory or a file: C:\Users\Lenovo\eclipse-workspace\JavaFX\src\Text
There are 54 files
相关推荐
呜喵王阿尔萨斯1 分钟前
C/C++ const -- 多义混乱
c语言·开发语言·c++
__log1 分钟前
幂等性设计:从“重复提交“到“稳如磐石“的系统防护
java·开发语言·spring boot
spider_xcxc2 分钟前
Helm 部署 K8s 集群完整笔记
java·开发语言·kubernetes
海清河晏1113 分钟前
Qt实战:从零构建美化登录界面
开发语言·c++·qt
祐樹5 分钟前
1987年5月23日下午15-17点出生性格、运势和命运
java
zhangjw345 分钟前
第35篇:Spring Boot入门:自动配置+快速搭建,简化企业开发
java·spring boot·后端
一只小灿灿13 分钟前
C++ 各类特殊符号、运算符
开发语言·c++
Fu_Lin_16 分钟前
《Qt嵌入式从零基础到精通》前言与阅读指南
开发语言·qt
名字还没想好☜20 分钟前
Go 的 select 实战:超时、非阻塞收发与优雅退出的三个套路
开发语言·数据库·golang·go·并发
geovindu21 分钟前
java: Backtracking Algorithm
java·开发语言·windows·后端·算法·回溯算法