package demo1;
import java.io.File;
import java.io.IOException;
import java.util.Scanner;
public class Demo1_file {
public static void main(String[] args) throws IOException {//抛异常
Scanner sn = new Scanner(System.in); //创建一个从键盘输入对象
System.out.println("请输入文件夹"); //提示输入文件路径
String s = sn.nextLine(); //获取输入的字符串
File f = new File(s); //以输入的文件路径创建一个File对象
long sum = fileDaXiao(f); //调用检测文件大小方法
System.out.println(sum); //把文件大小输出到控制台(这里的大小单位是字节)
}
public static long fileDaXiao(File f) throws IOException {//抛异常
//检测文件大小方法
if(!f.exists()) { //判断输入的字符串是否为正确的文件路径
System.out.println("你输入的不是文件夹!"); //如果不是文件,则返回控制台提示。当然,你也可以不说
return 0; //理论上不是文件是没有大小之说
}else if(f.isFile()) { //判断如果是文件,则会计算大小
/*System.out.println("你输入的是一个文件!"); //里面用注释是一个字节一个字节计算文件大小,用此方法效率低
FileInputStream fis = new FileInputStream(f);
long s = 0;
while(fis.read() != -1) {
s++;
}
fis.close();
return s;*/
return f.length(); //返回的这个方法效率高
}else { //前面两个都不是的话,就只有文件夹
System.out.println("你输入的是一个文件夹:"); //这也是提示作用,你也可以不用
long sum = 0; //因为是文件夹,所以要计算文件夹里面的各文件大小,所以这里定义一个计算文件大小的long类型
File[] f2 =f.listFiles(); //获取文件夹里面的所有文件,包括文件夹
for(int i = 0;i < f2.length; i++) { //循环每一个文件
sum += fileDaXiao(f2[i]); //调用自身方法的递归
}
return sum; //返回此文件夹的大小
}
}
}
【java基础之代码】【检测文件或文件夹的大小】
最新推荐文章于 2022-04-02 10:11:06 发布