最近小弟在做一款类似于杀毒软件的工具,需求是通过遍历扫描根目录下的所有文件和路径。
我自己写的很简单:
File[] file = new File("/").listFiles();
readFileELF(file);
将文件目录提取出来再传递给其他函数,之前在5.0的虚拟机上跑的没问题,目前因为项目原因,需要测试在8.0系统上,然后这种方法就失效了。
我通过debug查看,扫描“/”路径下的文件列表为空。若是将“/”改成“/system”就能成功扫描system文件夹下的文件及子文件夹。
发帖想问一下,如果我想实现扫描全盘的功能,我需要怎么改能?总不能手动将所有一级子文件夹都手动添加吧。。。
android5.0以后版本需要获取文件权限才可以读取
8.0的根目录没有读权限,无法读取文件。在app里使用shell也无法读取根目录。然而在电脑上adb shell却可以读。
在cmd里执行
adb shell ls / > /Desktop/file.txt
在file.txt文件中可以生成根目录文件列表,可以通过读取file.txt文件获取。手里没有8.0真机,无法准确测试手机是否也可以。
对于8.0无法直接获取根目录文件目录的话,建议主流手机分别做适配吧。