获取文件夹大小

Eri*_*ric 13 java file-io

你知道如何用Java获取文件夹大小吗?

File类中的length()方法仅适用于文件,使用该方法我总是得到0的大小.

Cla*_*ini 28

使用apache-commons-io,有一个FileUtils带有sizeOfDirectory方法的类


use*_*884 21

import java.io.File;
import org.apache.commons.io.FileUtils;

public class FolderSize
{
  public static void main(String[] args)
   {
    long size = FileUtils.sizeOfDirectory(new File("C:/Windows/folder"));

    System.out.println("Folder Size: " + size + " bytes");
   }
}
Run Code Online (Sandbox Code Playgroud)


AHO*_*HOY 7

import java.io.File;

public class GetFolderSize {

    int totalFolder = 0;
    int totalFile = 0;

    public static void main(String args[]) {
        String folder = "C:/GetExamples";
        try {
            GetFolderSize size = new GetFolderSize();
            long fileSizeByte = size.getFileSize(new File(folder));
            System.out.println("Folder Size: " + fileSizeByte + " Bytes");
            System.out.println("Total Number of Folders: "
                + size.getTotalFolder());
            System.out.println("Total Number of Files: " + size.getTotalFile());
        } catch (Exception e) {}
    }

    public long getFileSize(File folder) {
        totalFolder++;
        System.out.println("Folder: " + folder.getName());
        long foldersize = 0;
        File[] filelist = folder.listFiles();
        for (int i = 0; i < filelist.length; i++) {
            if (filelist[i].isDirectory()) {
                foldersize += getFileSize(filelist[i]);
            } else {
                totalFile++;
                foldersize += filelist[i].length();
            }
        }
        return foldersize;
    }

    public int getTotalFolder() {
        return totalFolder;
    }

    public int getTotalFile() {
        return totalFile;
    }
}
Run Code Online (Sandbox Code Playgroud)


Bil*_*l K 0

文件夹一般都有一个很小的“Size”,你可以把它们想象成一个索引。

所有返回文件夹“大小”的程序实际上都会迭代并累加文件的大小。