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" />