我正在尝试以编程方式访问目录,但即使我在该目录中有文件,listFiles()
也会返回null。我使用mkdir
命令将目录创建到app根目录,然后使用adb push
命令将图像推送到目录。可以访问应用程序的所有其他目录,listFiles()
仅在我创建的目录上返回null。
App目录(所有其他目录内容,pics除外,由listFiles()
显示):
dex
inbox
pics
right
我在AndroidManifest.xml中包含了所需的权限:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
遍历目录的方法(当递归到达pics目录root.listFiles() = null
时:
HashMap<File, Bitmap> imageReader(File root) {
HashMap<File, Bitmap> returnList = new HashMap<>();
HashMap<File, Bitmap> holderList;
File[] files = root.listFiles();
for (int i = 0; i < files.length; i++) {
if (files[i].isDirectory()) {
holderList = imageReader(files[i]);
returnList.putAll(holderList);
} else {
if (files[i].getName().endsWith(".jpg") || files[i].getName().endsWith(".jpeg")) {
returnList.put(files[i], getFileBitmap(files[i]));
}
}
}
return returnList;
}
编辑:所有目录的UID和GID都相同
root@generic_x86:/data/user/0/com.erkki.hellogridview/files/instant-run #
ls -n
-rw------- 10058 10058 5 2016-07-25 15:56 active
drwx------ 10058 10058 2016-07-25 15:38 dex
drwxrwxrwx 10058 10058 2016-07-25 15:56 inbox
drwxrwxrwx 10058 10058 2016-07-26 13:08 pics
drwxr--r-- 10058 10058 2016-07-26 15:18 pics2
drwx------ 10058 10058 2016-07-25 15:56 right