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
相关推荐
kyle~6 分钟前
Python---watchdog文件系统监控库
开发语言·python·操作系统·文件系统
夜瞬7 分钟前
【Flask 框架学习】01:编写第一个 Flask 应用
后端·python·学习·flask
JavaLearnerZGQ7 分钟前
Spring Boot 流式响应接口核心组件解析
java·spring boot·后端
cur1es7 分钟前
【TCP 协议的相关特性】
java·网络·网络协议·tcp/ip·tcp·滑动窗口·连接管理
我命由我123459 分钟前
Photoshop - Photoshop 工具栏(68)内容感知移动工具
学习·ui·职场和发展·求职招聘·职场发展·学习方法·photoshop
山岚的运维笔记12 分钟前
SQL Server笔记 -- 第80章:分页
java·数据库·笔记·sql·microsoft·sqlserver
开开心心就好19 分钟前
文字转语音无字数限,对接微软接口比付费爽
java·linux·开发语言·人工智能·pdf·语音识别
海兰20 分钟前
Elasticsearch 9.x Java 异步客户端
java·elasticsearch·jenkins
马猴烧酒.21 分钟前
【JAVA算法|hot100】哈希类型题目详解笔记
java·笔记
xyq202422 分钟前
Perl 发送邮件:全面指南
开发语言