我的活动中有这个代码。使用此代码,我获得了所有文件,但我只想获得.txt
个文件而不是所有文件。我该怎么办MyFiles.add(files[i].getName());
@SuppressLint("SdCardPath")
public void li () {
ArrayList<String> FilesInFolder = GetFiles("/sdcard");
lv = (ListView)findViewById(R.id.list_item);
lv.setAdapter(new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, FilesInFolder));
Collections.sort(FilesInFolder );
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int position,
long id) {
String s = (String) parent.getItemAtPosition(position);
h = s;
//to do
}
}
});
}
public ArrayList<String> GetFiles(String DirectoryPath) {
ArrayList<String> MyFiles = new ArrayList<String>();
File f = new File(DirectoryPath);
f.mkdirs();
File[] files = f.listFiles();
if (files.length == 0)
Toast.makeText(this, R.string.foldeisempty,
Toast.LENGTH_SHORT).show();
else {
for (int i=0; i<files.length; i++)
MyFiles.add(files[i].getName());
}
return MyFiles;
}
答案 0 :(得分:0)
转过来:
for (int i=0; i<files.length; i++)
MyFiles.add(files[i].getName());
进入这个:
string fileName="";
string extension="";
for (int i=0; i<files.length; i++){
fileName=files[i].getName();
extension = Path.GetExtension(fileName);
if(extension==".txt")MyFiles.add(fileName);
}
并确保您在模块的顶部有这个,这使得“Path.GetExtension”可用:
using System.IO
答案 1 :(得分:0)
您只需要检查文件类型
for (int i=0; i<files.length; i++) {
var extension = Path.GetExtension(files[i].getName());
if (extension = '.txt')
MyFiles.add(files[i].getName());
}