列出sdcard-android所有文件夹或子文件夹中具有特定扩展名的所有文件
这似乎是一个老生常谈的问题,但我已经尝试了所有的解决方案,这似乎对我不起作用。我使用以下代码列出ListView中所有扩展名为.docx的文件。但是,由于某些原因,这不能正常工作,并且只列出根目录下的所有文件 在onCreate中:列出sdcard-android所有文件夹或子文件夹中具有特定扩展名的所有文件,android,android-listview,Android,Android Listview,这似乎是一个老生常谈的问题,但我已经尝试了所有的解决方案,这似乎对我不起作用。我使用以下代码列出ListView中所有扩展名为.docx的文件。但是,由于某些原因,这不能正常工作,并且只列出根目录下的所有文件 在onCreate中: view = (LinearLayout) findViewById(R.id.view); //getting SDcard root path root = new File(Environment.getExternalStorageDire
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);
if(!fileList.get(i).isDirectory() & fileList.get(i).getName().endsWith(".docx") || fileList.get(i).getName().endsWith(".doc")) {
textView.setText((i+1)+". "+fileList.get(i).getName());
Toast.makeText(this, fileList.get(j).getAbsolutePath(),Toast.LENGTH_LONG).show();
textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
.....
}
});
view.addView(textView);
}
else {
getfile( new File(fileList.get(i).getAbsolutePath())); // its directory so similar code but new filelist instance
for (int k = 0; k < fileList.size(); k++) {
//TextView textView = new TextView(this);
if(!fileList.get(k).isDirectory() & fileList.get(k).getName().endsWith(".docx") || fileList.get(k).getName().endsWith(".doc")) {
textView.setText((k+1)+". "+fileList.get(i).getName());
Toast.makeText(this, fileList.get(j).getAbsolutePath(),Toast.LENGTH_LONG).show();
textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
...
}
});
view.addView(textView);
}
else {
}
}
}
view=(LinearLayout)findViewById(R.id.view);
//获取SD卡根路径
root=新文件(Environment.getExternalStorageDirectory()
.getAbsolutePath());
getfile(root);
对于(int i=0;i
getFile ArrayList函数:
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()) {
} else {
if (listFile[i].getName().endsWith(".docx")
|| listFile[i].getName().endsWith(".doc"))
{
fileList.add(listFile[i]);
}
}
}
}
return fileList;
}
public ArrayList getfile(文件目录){
文件listFile[]=dir.listFiles();
if(listFile!=null&&listFile.length>0){
for(int i=0;i
使用内容解析器从MediaStore查询这样的mimetype是否更好?如果你想沿着目录树往下走,你需要在这里递归,而不是什么都不做:if(listFile[i].isDirectory()){}
我尝试过这样做else if(fileList.get(i).isDirectory(){getfile(新文件(fileList.get(i.getAbsolutePath());for(int k=0;k
,这对我没有帮助。