java 獲取文件夾大小,文件大小,文件個數的代碼

jopen 10年前發布 | 18K 次閱讀 Java開發 Java

java 獲取文件夾大小,文件大小,文件個數。代碼如下:

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) + "毫秒...");
}

}</pre>

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!