Java:如何计算一个文件或文件夹的大小?

使用递归实现。

 

 


 

代码:

class FileUtils{
    /**
     * 存放文件大小
     */
    private static long countSize;
    /**
     * 递归遍历所有文件
     */
    private static void allFiles(String path){
        File fl = new File(path);
        if(fl.exists()){
            if(fl.isDirectory()){//递归头
                File[] fls = fl.listFiles();
                for(File f :fls){
                    allFiles(f.getPath());//递归体
                }
            }else if(fl.isFile()){
                countSize+=fl.length();
            }
        }else{
            countSize=-1;
        }
    }

    /**
     * @param path  文件路径
     * @return  文件大小,不存在时返回-1。(单位:字节)
     */
    static long getFileSize(String path){
        allFiles(path);
        long temp = countSize;
        countSize= 0;
        return temp;
    }
}

 

posted @ 2022-11-03 15:37  在博客做笔记的路人甲  阅读(168)  评论(0编辑  收藏  举报