天天看點

從鍵盤輸入一個檔案夾路徑,統計該檔案夾大小

從鍵盤輸入一個檔案夾路徑,統計該檔案夾大小

  • 解題步驟:
    • 從鍵盤輸入一個檔案夾路徑
    • 1、建立鍵盤錄入對象
    • 2、定義一個無限循環,當錄入錯誤用來循環輸入
    • 3、将鍵盤錄入的結果存儲并封裝成file對象
    • 4、對file對象進行判斷
    • 5、将檔案夾路徑對象傳回
    • 統計檔案夾大小
    • 1、定義一個求和變量
    • 2、擷取檔案夾下所有的檔案盒檔案夾listFile()
    • 3、周遊數組
    • 4、判斷是檔案就計算大小
    • 5、判斷是檔案夾就遞歸調用
package com.cn.heima;

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

public class TjFile {
	/**
	 * 需求:從鍵盤輸入一個檔案夾路徑,統計該檔案夾大小
	 * @param args
	 */

	public static void main(String[] args) {

		File dir = getDir();
		System.out.println(getFileLength(dir));
	}
	/**從鍵盤接收一個檔案夾路徑
	 * 1、傳回值類型file
	 * 2、參數清單無
	 */
	public static File getDir() {
//		*1、建立鍵盤錄入對象
		Scanner sc = new Scanner(System.in);
		System.out.println("請輸入一個檔案夾路徑");
		
//		 * 2、定義一個無限循環,當錄入錯誤用來循環輸入
//		 * 3、将鍵盤錄入的結果存儲并封裝成file對象
//		 * 4、對file對象進行判斷
		while(true) {
			String line = sc.nextLine();    
			File file = new File(line);
			if(!file.exists()) {
				System.out.println("您錄入的檔案夾路徑不存在,請重新輸入");
			}else if(file.isFile()) {
				System.out.println("您錄入的是檔案路徑,請輸入檔案夾路徑");
			}else {
//				 * 5、将檔案夾路徑對象傳回
				return file;
			}
			
		}
	}
	public static long getFileLength(File file) {
//		 統計檔案夾大小
//		 * 1、定義一個求和變量
		long len = 0;
//		 * 2、擷取檔案夾下所有的檔案和檔案夾listFile()
		File[] subFiles = file.listFiles();
		//		 * 3、周遊數組
//		 * 4、判斷是檔案就計算大小
		for (File subfile : subFiles) {
			 if(subfile.isFile()){
				 len = len + subfile.length();
			 }else {
			 //		 * 5、判斷是檔案夾就遞歸調用
				 len = len + getFileLength(subfile);
			 }
		}


		return len;
	}

	
}


           
從鍵盤輸入一個檔案夾路徑,統計該檔案夾大小