如何获取目录中的文件列表?
我向AndroidManifest.xml添加了权限:
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
我正在尝试获取文件列表:
File dir = new File(Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_MUSIC).getPath());
File f = new File(dir.toString());
File[] list = f.listFiles(); // Получаю null, хотя файлы и папки там есть
目录本身同时返回true
和..isDirectory()
.exists()
当我尝试通过 NIO 做同样的事情时,我得到AccessDeniedException
.
您很可能不会在运行时请求权限...
要在运行时请求权限,请使用以下代码:
处理权限请求的代码:
来源 - https://developer.android.com/training/permissions/requesting.html
重要提示:在Android 8.0 ( API 26 ) 之前,如果应用程序在运行时请求权限并且该权限被授予,系统也会错误地授予该应用程序属于在清单中注册的同一权限组的其余权限.
在Android 8.0中,此行为已得到修复。应用程序仅接收已明确请求的权限。但是,一旦用户授予应用程序权限,属于同一权限组的所有后续权限请求都会自动授予。