如何用java获取linux下某文件夹的大小

如题所述

javacode如下:import java.io.*; class dirlen { static long dirlength;//保存目录大小的变量 static void sdl(String dirname) { File dir=new File(dirname); System.out.println(dirname); String f[]=dir.list(); File f1; for(int i=0;i<f.length;i++) { f1 = new File (dirname+"/"+f[i]); if (!f1.isDirectory()) dirlength+=f1.length(); else sdl(dirname+"/"+f[i]);//如果是目录,递归调用 } } public static void main(String args[]) { if(args.length!=1)//判断是否只带一个参数,参数是目录名 { System.out.println("Parameter error!"); System.exit(0); } dirlength=0; String dirname=args[0]; File dir=new File(dirname); if(dir.isDirectory())//判断是否是目录,如果不是退出程序 { sdl(dirname);//计算目录大小 System.out.println("Length is "+dirlength+" bytes."); } else System.out.println(dir+" isn't a directory!"); } }
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-05-13
通过FileInputStream来获取的文件大小:
public static void main(String[] args) {
FileInputStream fis= null;
try{
File f= new File("D:\\CentOS-6.5-x86_64-bin-DVD1.iso");
fis= new FileInputStream(f);
logger.info(fis.available());
}catch(Exception e){
logger.error(e);
} finally{
if (null!=fis){
try {
fis.close();
} catch (IOException e) {
logger.error(e);
}
}
}
}
下面是运行结果:
2147483647
它是Integer.MAX_VALUE,也就是有符号整型能表示的最大数值。