应用程序directory.listFiles()返回null

时间:2016-07-26 14:25:33

标签: android

我正在尝试以编程方式访问目录,但即使我在该目录中有文件,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

0 个答案:

没有答案