在Android中如果需要获取一个文件(夹)的属性,可以直接使用File等获取,这些API都有说明,但也仅限于获取一般可以见的属性,如读写权限修改时间等,但涉及到文件系统的属性(如inode,blocksize)等就不能直接获取。当然使用第三方工具命令,像stat(in busybox)还是可以的
但这种方式却不太方便(命令非系统自带,app中使用获取数据也比较麻烦),这种方法基本上可以抛弃。
到头来还是得看源码,在frameworks\base\core\java\android\os目录下有一个定义如下:
1 | /* |
从注释可知,这是一个隐藏的类,于是很自然就想到了反射了,我们的目标是要获取到FileStatus的内容,
1 | try { |
当然也可以获取其他成员,不再赘述。
写完了