隨筆 - 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
          主站蜘蛛池模板: 建平县| 循化| 汤原县| 临颍县| 宜兰县| 哈巴河县| 依兰县| 壤塘县| 乐昌市| 鹤山市| 浮梁县| 峨边| 翁源县| 望江县| 红桥区| 安西县| 罗田县| 阿荣旗| 墨脱县| 汽车| 衢州市| 通海县| 客服| 巨野县| 工布江达县| 汉阴县| 榆树市| 南澳县| 鄢陵县| 炉霍县| 密山市| 云浮市| 衡山县| 民权县| 绥宁县| 仪征市| 兴化市| 乌审旗| 竹北市| 资中县| 辉县市|