隨筆 - 0, 文章 - 264, 評論 - 170, 引用 - 0
          數(shù)據(jù)加載中……

          java 獲取文件夾大小,文件大小,文件個數(shù)(注:轉(zhuǎn)載于http://blog.sina.com.cn/s/blog_45096c6a0100btse.html)

          package tony;


          import java.io.File;
          import java.text.DecimalFormat;
          import java.io.FileInputStream;

          public class GetFileSize
          {
              public long getFileSizes(File f) throws Exception{//取得文件大小
                  long s=0;
                  if (f.exists()) {
                      FileInputStream fis = null;
                      fis = new FileInputStream(f);
                     s= fis.available();
                  } else {
                      f.createNewFile();
                      System.out.println("文件不存在");
                  }
                  return s;
              }
              // 遞歸
              public long getFileSize(File f)throws Exception//取得文件夾大小
              {
                  long size = 0;
                  File flist[] = f.listFiles();
                  for (int i = 0; i < flist.length; i++)
                  {
                      if (flist[i].isDirectory())
                      {
                          size = size + getFileSize(flist[i]);
                      } else
                      {
                          size = size + flist[i].length();
                      }
                  }
                  return size;
              }

              public String FormetFileSize(long fileS) {//轉(zhuǎn)換文件大小
                  DecimalFormat df = new DecimalFormat("#.00");
                  String fileSizeString = "";
                  if (fileS < 1024) {
                      fileSizeString = df.format((double) fileS) + "B";
                  } else if (fileS < 1048576) {
                      fileSizeString = df.format((double) fileS / 1024) + "K";
                  } else if (fileS < 1073741824) {
                      fileSizeString = df.format((double) fileS / 1048576) + "M";
                  } else {
                      fileSizeString = df.format((double) fileS / 1073741824) + "G";
                  }
                  return fileSizeString;
              }
             
              public long getlist(File f){//遞歸求取目錄文件個數(shù)
                  long size = 0;
                  File flist[] = f.listFiles();
                  size=flist.length;
                  for (int i = 0; i < flist.length; i++) {
                      if (flist[i].isDirectory()) {
                          size = size + getlist(flist[i]);
                          size--;
                      }
                  }
                  return size;

           

             }
             
              public static void main(String args[])
              {
                  GetFileSize g = new GetFileSize();
                  long startTime = System.currentTimeMillis();
                  try
                  {
                      long l = 0;
                      String path = "C:\\WINDOWS";
                      File ff = new File(path);
                      if (ff.isDirectory()) { //如果路徑是文件夾的時候
                          System.out.println("文件個數(shù)           " + g.getlist(ff));
                          System.out.println("目錄");
                          l = g.getFileSize(ff);
                          System.out.println(path + "目錄的大小為:" + g.FormetFileSize(l));
                      } else {
                          System.out.println("     文件個數(shù)           1");
                          System.out.println("文件");
                          l = g.getFileSizes(ff);
                          System.out.println(path + "文件的大小為:" + g.FormetFileSize(l));
                      }
                     
                  } catch (Exception e)
                  {
                      e.printStackTrace();
                  }
                  long endTime = System.currentTimeMillis();
                  System.out.println("總共花費時間為:" + (endTime - startTime) + "毫秒...");
              }
          }

          posted on 2010-12-22 00:18 小一敗涂地 閱讀(65660) 評論(2)  編輯  收藏 所屬分類: java語言相關(guān)

          評論

          # re: java 獲取文件夾大小,文件大小,文件個數(shù)(注:轉(zhuǎn)載于http://blog.sina.com.cn/s/blog_45096c6a0100btse.html)[未登錄]  回復(fù)  更多評論   

          放著file.length不用,為嘛要自己用流讀取。
          2014-04-11 11:28 | daniel

          # re: java 獲取文件夾大小,文件大小,文件個數(shù)(注:轉(zhuǎn)載于http://blog.sina.com.cn/s/blog_45096c6a0100btse.html)[未登錄]  回復(fù)  更多評論   

          123
          2016-03-04 11:36 | 123
          主站蜘蛛池模板: 牟定县| 太和县| 济阳县| 通江县| 新田县| 靖宇县| 镇雄县| 大庆市| 石棉县| 金平| 杭锦后旗| 仪陇县| 尖扎县| 龙江县| 星子县| 绵竹市| 竹北市| 精河县| 和政县| 莎车县| 无极县| 壤塘县| 泰兴市| 山阴县| 雅江县| 胶南市| 台中县| 台南县| 信阳市| 娱乐| 民县| 玉门市| 开封市| 华亭县| 东丰县| 寻乌县| 临澧县| 神木县| 正镶白旗| 庆安县| 甘洛县|