-1

请问如何列出文件夹中的所有文件?我尝试使用该代码来做到这一点

    File theFolder = new File(Environment.getExternalStorageDirectory()+File.separator +"TestFolder");

    if(theFolder.exists())
    {
        Log.d("theFolder", "theFolderExiste ");
        File [] files = theFolder.listFiles();

        Log.d("Files", "files: "+files.length);
        
        for(File file : files)
        {
            Log.d("file ", "file name : "+file.getName());
        }
        

    }else
        {
            Log.d("theFolder", "we dont have that folder ");
        }

但是您好,请给我这个错误原因:java.lang.NullPointerException:尝试在 com.joshuabutton.documentscanner.DisplayListOfFiles.onCreate(DisplayListOfFiles.java:76) 处获取空数组的长度

我在那个文件夹中有文件,正如你在图片中看到的那样在此处输入图像描述

4

2 回答 2

1

为了访问这些文件,必须在清单文件中提供权限。

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

String path = Environment.getExternalStorageDirectory().toString()+"/Pictures";
Log.d("Files", "Path: " + path);
File directory = new File(path);
File[] files = directory.listFiles();
Log.d("Files", "Size: "+ files.length);
for (int i = 0; i < files.length; i++)
{
    Log.d("Files", "FileName:" + files[i].getName());
}
于 2021-01-19T13:01:45.390 回答
0

您需要考虑两件事。

1 - 您需要读取存储权限 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />才能读取您的应用未创建的数据

2 - 即使具有读取存储权限,较新版本的 android,也不允许直接读取文件夹,请查看此视频,它可能会对您有所帮助

于 2021-01-19T12:49:02.630 回答