隨筆 - 0, 文章 - 264, 評論 - 170, 引用 - 0
          數據加載中……

          java 獲取文件夾大小,文件大小,文件個數(注:轉載于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) {//轉換文件大小
                  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){//遞歸求取目錄文件個數
                  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("文件個數           " + g.getlist(ff));
                          System.out.println("目錄");
                          l = g.getFileSize(ff);
                          System.out.println(path + "目錄的大小為:" + g.FormetFileSize(l));
                      } else {
                          System.out.println("     文件個數           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 小一敗涂地 閱讀(65656) 評論(2)  編輯  收藏 所屬分類: java語言相關

          評論

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

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

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

          123
          2016-03-04 11:36 | 123
          主站蜘蛛池模板: 苏州市| 靖安县| 广灵县| 行唐县| 津市市| 色达县| 金沙县| 白水县| 德惠市| 翼城县| 北票市| 二手房| 吴忠市| 紫金县| 鲁山县| 河曲县| 遵化市| 邵东县| 漳浦县| 敦化市| 嘉黎县| 阳原县| 喀喇| 惠安县| 建水县| 含山县| 惠水县| 和田市| 东港市| 泰和县| 莱芜市| 贞丰县| 石阡县| 陕西省| 丹寨县| 台中县| 台南市| 原平市| 南郑县| 象州县| 广饶县|