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
相关推荐
书源丶2 分钟前
三十二、Java集合(一)——Collection与List全家桶
java·windows·list
kyriewen118 分钟前
Next.js部署:从本地跑得欢,到线上飞得稳
开发语言·前端·javascript·科技·react.js·前端框架·ecmascript
AI人工智能+电脑小能手8 分钟前
【大白话说Java面试题】【Java基础篇】第21题:HashMap和Hashtable的区别是什么
java·开发语言·面试·哈希算法·散列表·hash table
不想写代码的星星10 分钟前
COW(Copy-on-Write):开抄开抄,哎嘿,我装的
开发语言·c++
慕容卡卡12 分钟前
Claude 使用神器(web页面)--CloudCLI UI
java·开发语言·前端·人工智能·ui·spring cloud
咬_咬13 分钟前
go语言学习(函数)
开发语言·学习·golang
Sylvia-girl15 分钟前
C++内存如何管理?
java·jvm·c++
froginwe1115 分钟前
PHP MySQL Delete 操作指南
开发语言
凯瑟琳.奥古斯特16 分钟前
图论核心考点精讲
开发语言·数据结构·算法·排序算法·哈希算法
极创信息17 分钟前
信创领域五种主流CPU架构(X86 / ARM / RISC-V / MIPS / LoongArch)
java·arm开发·数据库·spring boot·mysql·软件工程·risc-v