获取带有扩展名的目录中的文件列表
问题描述:
我试图从外部存储中检索所有文件名以及扩展名到我的应用程序。已经我试过,但它显示文件大小= 0" ,而我调试,但同时它显示同样的文件名,请试着给我建议。获取带有扩展名的目录中的文件列表
private File root;
private ArrayList<File> fileList = new ArrayList<File>();
private LinearLayout view;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
view = (LinearLayout) findViewById(R.id.view);
//getting SDcard root path
root = new File(Environment.getExternalStorageDirectory()
.getAbsolutePath());
getfile(root);
for (int i = 0; i < fileList.size(); i++) {
TextView textView = new TextView(this);
textView.setText(fileList.get(i).getName());
textView.setPadding(5, 5, 5, 5);
System.out.println(fileList.get(i).getName());
if (fileList.get(i).isDirectory()) {
textView.setTextColor(Color.parseColor("#FF0000"));
}
view.addView(textView);
}
}
public ArrayList<File> getfile(File dir) {
File listFile[] = dir.listFiles();
if (listFile != null && listFile.length > 0) {
for (int i = 0; i < listFile.length; i++) {
if (listFile[i].isDirectory()) {
fileList.add(listFile[i]);
getfile(listFile[i]);
} else {
if (listFile[i].getName().endsWith(".png")
|| listFile[i].getName().endsWith(".jpg")
|| listFile[i].getName().endsWith(".jpeg")
|| listFile[i].getName().endsWith(".gif"))
{
fileList.add(listFile[i]);
}
}
}
}
return fileList;
}
}
答
您要添加的(目录在你的GetFiles文件列表)方法。因此,它显示文件的大小为0 做一个小的变化,只是删除fileList.add(listFile[i]);
从您的GetFiles()方法。希望这会工作。
+0
谢谢它的工作,但无法打开该列表中的子文件夹 – Mounika
此代码工作好的,我在模拟器上用API 23测试了它。检查你是否已经请求了READ_EXTERNAL_STORAGE权限。 –