- package com.heima.test;
- import java.io.File;
- import java.util.Scanner;
- public class Test01 {
- /**
- * 需求:1,从键盘接收一个文件夹路径,统计该文件夹大小
- * 从键盘接收一个文件夹路径
- * 1.创建文本扫描器对象
- * 2.创建死循环,判断文件路径:创建文件路径对象,接受文本扫描器输入
- * 3.判断文件路径是否存在,不存在提示用户
- * 4.判断文件路径是否是文件夹,是文件夹提示用户
- * 5.如果文件路径是文件夹,跳出循环
- *
- * 统计该文件夹大小
- * 1.获取文件夹下所有文件路径数组。
- * 2.判断你文件数组是否为null,是null提示用户无法访问并返回。
- * 3.遍历文件路径数组下的所有文件路径。
- * 4.如果是文件夹,进入递归调用
- * 5.如果是文件,累加大小
- * 6.返回最后累加的大小
- */
- public static void main(String[] args) {
- File dir = getDir();
- System.out.println(getFileLength(dir));
- }
-
- /**
- *
- * @Title: getDir
- * @Description: 获取一个可用的文件夹路径
- * @param @return 设定文件
- * @return File 返回类型
- * @throws
- */
- public static File getDir() {
- //1.创建文本扫描器对象
- Scanner sc = new Scanner(System.in);
- //2.创建死循环,判断文件路径:创建文件路径对象,接受文本扫描器输入
- File dir = null;
- while (true) {
- System.out.println("请输入一个文件夹路径:");
- String line = sc.nextLine();
- dir = new File(line);
- if (!dir.exists()) {
- System.out.println("文件路径不存在,请重新输入。");
- } else if (dir.isFile()) {
- System.out.println("文件路径是文件,不是文件夹,请重新输入。");
- } else {
- break;
- }
- }
- return dir;
- }
-
- /**
- *
- * @Title: getFileLength
- * @Description: TODO(这里用一句话描述这个方法的作用)
- * @param @param dir
- * @param @return 设定文件
- * @return long 返回类型
- * @throws
- *
- * 1.获取文件夹下所有文件路径数组。
- * 2.判断你文件数组是否为null,是null提示用户无法访问并返回。
- * 3.遍历文件路径数组下的所有文件路径。
- * 4.如果是文件夹,进入递归调用
- * 5.如果是文件,累加大小
- * 6.返回最后累加的大小
- */
- public static long getFileLength(File dir) {
- //1.获取文件夹下所有文件路径数组。
- File[] files = dir.listFiles();
- long length = 0;
- //2.判断你文件数组是否为null,是null提示用户无法访问并返回。
- if (files == null) {
- System.out.println("文件夹路径无法访问。");
- return 0;
- }
- //3.遍历文件路径数组下的所有文件路径。
- for (File f : files) {
- if (f.isDirectory()) {
- //4.如果是文件夹,进入递归调用
- length += getFileLength(f);
- } else {
- //如果是文件,累加大小
- length += f.length();
- }
- }
- //6.返回最后累加的大小
- return length;
- }
-
-
- }
复制代码 |
|