Get folder size

前端 未结 8 1178
生来不讨喜
生来不讨喜 2020-12-30 06:27

Do you know how can I get the folder size in Java?

The length() method in the File class only works for files, using that method I always get a size of 0.

8条回答
  •  再見小時候
    2020-12-30 06:41

    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;
        }
    }
    

提交回复
热议问题