【问题标题】:Environment.getRootDirectory() returns null on listFiles() functionEnvironment.getRootDirectory() 在 listFiles() 函数上返回 null
【发布时间】:2021-02-02 05:12:24
【问题描述】:

我的 ArrayList pdfs 在传递 Environment.getDataDirectory() Environment.getRootDirectory() 或已弃用的 Environment.getExternalStorageDirectory() 时返回空数组列表。

static ArrayList pdfs=new ArrayList<File>();

public static void Search_Dir(File dir){
        String pdfPattern = ".pdf";
        File FileList[] =dir.listFiles();
        if(FileList != null){
            for(int i = 0; i < FileList.length; i++){
                if(FileList[i].isDirectory()) {
                    Search_Dir(FileList[i]);
                }
                else {
                    if(FileList[i].getName().endsWith(pdfPattern)){
                        pdfs.add(FileList[i]);
                    }
                }
            }
        }
        else{
            Log.d("NULLHERE","OOPS NULL HERE");
        }

请问怎么走? 我还在AndroidManifest.xml 文件中包含了读写Permissions

【问题讨论】:

  • 您是否在应用管理设置中检查是否允许读/写权限。您也可以尝试在 Manifest 中添加android:requestLegacyExternalStorage="true"
  • 我在App管理设置中勾选了,允许存储权限。我将在Manifest 文件中添加该行并回复您。谢谢

标签: java android local-storage android-permissions permission-denied


【解决方案1】:

MediaStore 是我后来使用的,它给了我想要的东西。 listFiles() 函数太多了。

【讨论】:

    猜你喜欢
    • 2021-07-07
    • 1970-01-01
    • 1970-01-01
    • 2020-01-09
    • 2014-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多