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
相关推荐
AllData公司负责人13 小时前
【亲测好用】实时开发平台能力演示
java·c语言·数据库
pcm12356713 小时前
设计C/S架构的IM通信软件(3)
java·c语言·架构
zz345729811313 小时前
C语言基础概念7
c语言·开发语言
会开花的二叉树13 小时前
Reactor网络库的连接管理核心:Connection类
开发语言·网络·php
凯子坚持 c13 小时前
C++基于微服务脚手架的视频点播系统---客户端(1)
开发语言·c++·微服务
袖清暮雨13 小时前
Python爬虫(Scrapy框架)
开发语言·爬虫·python·scrapy
呱呱巨基14 小时前
Linux 第一个系统程序 进度条
linux·c++·笔记·学习
2401_8384725114 小时前
C++中的装饰器模式实战
开发语言·c++·算法
咖啡啡不加糖14 小时前
Grafana 监控服务指标使用指南:打造可视化监控体系
java·后端·grafana
€81114 小时前
Java入门级教程26——序列化和反序列化,Redis存储Java对象、查询数据库与实现多消费者消息队列
java·拦截器·序列化和反序列化·数据库查询·redis存储java对象·多消费者消息队列