A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

如果最正确,迭代遍历盘符的文件夹大小,或者是类型的问题
[Java] 纯文本查看 复制代码
package com.heima.file类;

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

public class Test01_迭代查找文件夹 {

	/**
	 * 需求:从键盘接收一个文件夹路径,统计该文件夹大小
	 */
	public static void main(String[] args) {
		//获取键盘录入的文件夹路径对象
		File dir = getDir();
		//获取文件夹大小
		long fileLength = getFileLength(dir);
		System.out.println(fileLength);
	}
	
	//这个方法的功能是获取文件夹大小
	public static long getFileLength(File dir) {
		//获取该路径下的所有文件夹以及文件的集合
		File[] listFiles = dir.listFiles();
		//设置初始化文件夹大小
		long len = 0;
		//当集合不为空的时候
		if (listFiles != null) {
			//遍历集合
			for (File file : listFiles) {
				//判断是存在的,并且是文件的时候
				if(file.exists() && file .isFile()) {
					//就把文件的大小统计起来
					len = len +file.length();
				}else {
					//递归调用
					len = len +getFileLength(file);
				}
			}
		}
		//返回文件大小的值
		return len;
	}
	
	//这个方法的功能是为了获取键盘录入的文件夹路径的对象
	public static File getDir() {
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入一个文件夹路径:");
		while (true) {
			//接收录入的数据
			String line = sc.nextLine();
			//把接收到的数据封装成File对象
			File file = new File(line);
			if( ! file.exists()) {								//判断是否存在
				System.out.println("您输入的路径不存在,请重新输入:");
			}else if (file.isFile()) {						//判断是否是文件
				System.out.println("您输入的是文件路径,请重新输入:");
			}else {												//又存在,又不是文件,那肯定就是文件夹了
				return file;
			}
		}
	}

}

2 个回复

倒序浏览
很重要很重要
回复 使用道具 举报
赞赞哒,感觉写的好棒
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马