Android获取指定文件大小

清华大佬耗费三个月吐血整理的几百G的资源,免费分享!....>>>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/**
     * 获取指定文件大小 
     * @param f 
     * @return 
     * @throws Exception   
     */ 
    public static long getFileSize(File file) throws Exception { 
        long size = 0
        if (file.exists()) { 
            FileInputStream fis = null
            fis = new FileInputStream(file); 
            size = fis.available(); 
        } else
            file.createNewFile(); 
            Log.e("获取文件大小", "文件不存在!"); 
        
        return size; 
    }

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
/**
     * 获取指定文件夹
     * @param f
     * @return
     * @throws Exception
     
     */ 
    public static long getFileSizes(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 + getFileSizes(flist[i]); 
            } else
                size = size + getFileSize(flist[i]); 
            
        
        return size; 
    }

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
/**
     * 转换文件大小
     * @param fileS
     * @return
     
     */ 
    public static String FormetFileSize(long fileS) { 
        DecimalFormat df = new DecimalFormat("#.00"); 
        String fileSizeString = ""
        String wrongSize = "0B"
        if (fileS == 0) { 
            return wrongSize; 
        
        if (fileS < 1024) { 
            fileSizeString = df.format((double) fileS) + "B"
        } else if (fileS < 1048576) { 
            fileSizeString = df.format((double) fileS / 1024) + "KB"
        } else if (fileS < 1073741824) { 
            fileSizeString = df.format((double) fileS / 1048576) + "MB"
        } else
            fileSizeString = df.format((double) fileS / 1073741824) + "GB"
        
        return fileSizeString; 
    }