File.length返回' 4096'目录

时间:2015-08-20 21:03:38

标签: android file

我正在尝试计算Android手机上的文件大小。因此,我编写了一个方法,该方法需要文件所在的目录,以及文件本身的数组。

public void showFiles(File directory, File[] files) {
    long max = directory.getTotalSpace();
    Log.d(DEBUG, "Directory size: " + Long.toString(max));
    for(int i = 0; i < files.length;  i++) {
        if(!files[i].isDirectory()) {
            Log.d(DEBUG, "File: " + files[i].getName() + " size: " + Long.toString(files[i].length()));
        }else {
            Log.d(DEBUG, "Directory: " + files[i].getName() + " size: " + Long.toString(files[i].length()));
        }
    }
}

调用这样的方法时:

showFiles(Environment.getExternalStorageDirectory(),Environment.getExternalStorageDirectory()。listFiles());

仅根据文件输出正确 - 但所有目录的大小似乎都是4096字节 - &gt; 4 Kilobytes。

这怎么可能,我做错了什么?

我期待着您的回复,

祝你好运

这是控制台输出的片段:

View: Directory: TuneIn Radio size: 4096
View: File: rmsINFO.txt size: 493
View: Directory: .mmsyscache size: 4096
View: Directory: Playlists size: 4096
View: Directory: PhotoEditor size: 4096
View: File: miniclipId.txt size: 24

1 个答案:

答案 0 :(得分:2)

因为Android是基于unix的,而4096恰好是目录的默认元数据大小。请参阅related superuser question