安卓开发:不能获取到完整的文件列表

我最近几天使用java开发文件管理的app,使用java的File类型的listFiles接口获取到的内部存储的文件列表,只能获取到文件夹,不能获取到文件

获取文件列表的代码

File externalStorage = Environment.getExternalStorageDirectory();
String path = externalStorage.getAbsolutePath();
File[] files = new File(path).listFiles();
for (File file : files) {
       Log.i("filename ",file.getName());
}

设备上的文件

img

控制台输出的结果

img

添加的权限

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />

这个你需要递归

public void listFiles(File dir) {
    File[] files = dir.listFiles();
    for (File file : files) {
        if (file.isDirectory()) {
            listFiles(file); //递归遍历子文件夹
        } else {
            Log.i("filename ", file.getName());
        }
    }
}

主程序

File externalStorage = Environment.getExternalStorageDirectory();
String path = externalStorage.getAbsolutePath();
File dir = new File(path);
listFiles(dir);