`
雨辰RainTime
  • 浏览: 112463 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JAVA获取文件夹(文件)大小

    博客分类:
  • Java
阅读更多
有人朋友问我怎样获取文件夹大小,仔细想想还真没有做过.今天凑机会也试验一下..

首先查询API看是否有相应的对像,失败.
看来只能用递归了.代码如下:

import java.io.*;
public class FileTest {
 private StringBuffer sb;
 private static double sizes;
 private void recurseFile(String path){  
  if(path.indexOf(".") == -1){  
  for(File file: new File(path).listFiles()){
   if(file.isFile()){
    sizes += file.length();
   }else{
      recurseFile(file.toString());
   }
}else
   sizes = file.length();
  }
       }  
 public static void main(String args[]){
  String path = "c:/windows";
  FileTest ft = new FileTest();
  ft.recurseFile(path);
  System.out.println(sizes/1024);
 }
}


经过优化后,速度还可以,查询windows文件夹的大小只需要0.8秒.
分享到:
评论
1 楼 IBelieveKDM 2013-03-20  
有错误修改过后

import java.io.*;
public class TestFileSize {
private StringBuffer sb;
private static double sizes;
private void recurseFile(String path){ 
  if(path.indexOf(".") == -1){ 
  for(File file: new File(path).listFiles()){
  if(file.isFile()){
  sizes += file.length();
  }else{
  recurseFile(file.toString());
  }
  }
  }else{
  File file =new File(path);
  sizes = file.length();
  }
       } 
public static void main(String args[]){
  String path = "F:/s";
  TestFileSize ft = new TestFileSize();
  ft.recurseFile(path);
  System.out.println(sizes/1024/1024+"M");
}
}

相关推荐

Global site tag (gtag.js) - Google Analytics