需求描述:从键盘接收一个文件夹路径,获得该文件夹大小并输出到控制台。
代码实现:
import java.io.File; import java.util.Scanner; public class Demo934 { public static void main(String[] args) { //创建扫描器 Scanner sc = new Scanner(System.in); System.out.println("请输入您要查询的文件夹的绝对路径(格式为: 盘符:\\文件夹名\\子文件夹名...)"); //定义变量保存用户输入的文件夹路径 String path = sc.next(); //调用方法 long fileSize = getFileSize(path); System.out.println("您查询的"+path+"文件夹下的文件大小为"+(fileSize/1024/1024)+"MB"); } //创建方法获取指定文件夹下的文件大小并将其打印出来,参数为文件夹绝对路径,返回值文件的大小 public static long getFileSize(String file) { //创建文件对象 File f = new File(file); if (f.exists() && f.isDirectory()) {//文件夹存在 //获取文件夹的文件的集合 File[] files = f.listFiles(); long count =0;//用来保存文件的长度 for (File file1 : files) {//遍历文件集合 if (file1.isFile()) {//如果是文件 count += file1.length();//计算文件的长度 } else { count += getFileSize(file1.toString());//递归调用 } } return count; }else { System.out.println("您查询的文件夹有误"); return 0; } } }
控制台运行效果: