Java Android:列出目录中的所有文件

Java Android:列出目录中的所有文件,java,android,list,file,directory,Java,Android,List,File,Directory,我正在尝试构建一个应用程序,它列出目录中的所有文件,并允许用户点击一个文件,然后根据文件扩展名在特定应用程序中打开它。到目前为止,我已经编写了这段代码来列出目录中的所有文件,但它似乎不起作用——它只是使应用程序崩溃 有人能告诉我为什么吗?我试图复制我在某处和其他不同地方找到的其他代码片段,但似乎都不起作用 提前谢谢 String home = Environment.getExternalStorageDirectory().toString() + "/vuza/" + username; T

我正在尝试构建一个应用程序,它列出目录中的所有文件,并允许用户点击一个文件,然后根据文件扩展名在特定应用程序中打开它。到目前为止,我已经编写了这段代码来列出目录中的所有文件,但它似乎不起作用——它只是使应用程序崩溃

有人能告诉我为什么吗?我试图复制我在某处和其他不同地方找到的其他代码片段,但似乎都不起作用

提前谢谢

String home = Environment.getExternalStorageDirectory().toString() + "/vuza/" + username;
Toast.makeText(this, "Debug: " + home, Toast.LENGTH_SHORT).show();

File root = new File(home);

File fileList[] = root.listFiles();

for(int x = 0; x < fileList.length; x++) {
    Toast.makeText(this, fileList[x].getName(), Toast.LENGTH_SHORT).show();
}
1)将其放入舱单:

2)还要检查
home
路径是否存在


3)
文件列表。如果其中没有目录,则length
可能返回null。检查
文件列表
是否为空,然后再
循环

将代码替换为下面的代码

String home = Environment.getExternalStorageDirectory().toString() + "/vuza/" + username;
文件文件=新文件(主文件)

还要确保您已授予以下权限

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


添加堆栈跟踪?发布崩溃日志,以便很容易发现问题。请发布日志。root.exists()的结果是什么?添加堆栈跟踪/logcat。抱歉,Android新手!
if(file.exists())
{
//method call
    listf(home);
}
else
{
Toast.makeText(this,"no dir extists"), Toast.LENGTH_SHORT).show();
}

public File[] listf(String directoryName) {

    // .............list file
    File directory = new File(directoryName);

    // get all the files from a directory
    File[] fList = directory.listFiles();

    for (File file : fList) {
        if (file.isFile()) {
            System.out.println(file.getAbsolutePath());
        } else if (file.isDirectory()) {
            listf(file.getAbsolutePath());
        }
    }
    System.out.println(fList);
    return fList;
} 
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />