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
相关推荐
协同生态8 小时前
天锐绿盾新版注册机【仅用于个人学习,禁止其他用途】
学习
慧都小项8 小时前
Parasoft Jtest 如何用 JSON 文件驱动Java 测试自动化
java·自动化·json
缺点内向8 小时前
如何在 C# 中重命名 Excel 工作表并设置标签颜色
开发语言·c#·excel
Cuby!8 小时前
【AFDM与信号处理:论文阅读】仿射频分复用:扩展OFDM以实现场景灵活性和弹性
论文阅读·笔记·学习·信息与通信·信号处理
Можно9 小时前
深入理解 JavaScript 函数:分类、特性与实战应用
开发语言·javascript
淼淼7639 小时前
工厂方法模式
开发语言·c++·windows·qt·工厂方法模式
Hui Baby9 小时前
全局事务入口感知子事务方法-TCC
java·开发语言·数据库
AAA阿giao9 小时前
从零开始学 React:用搭积木的方式构建你的第一个网页!
前端·javascript·学习·react.js·前端框架·vite·jsx
laozhoy19 小时前
深入理解Go语言errors.As方法:灵活的错误类型识别
开发语言·后端·golang
周杰伦_Jay9 小时前
【Go 语言】核心特性、基础语法及面试题
开发语言·后端·golang