我使用以下代码列出SD卡上的所有文件。但是我只想列出所有文本文件,可以通过一些正文告诉我如何添加文件过滤器。同样我也需要获取图像文件。以下是我的代码:
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)
return null;
else {
for (int i=0; i<files.length; i++)
MyFiles.add(files[i].getName());
}
return MyFiles;
}
答案 0 :(得分:1)
使用 Java String Class 中的.endsWith()
方法检查文件路径中的文件扩展名。
方式:强>
public boolean endsWith(String suffix)
您的代码类似,
private List<String> ReadSDCard()
{
//It have to be matched with the directory in SDCard
File f = new File("your path");
File[] files=f.listFiles();
for(int i=0; i<files.length; i++)
{
File file = files[i];
/*It's assumed that all file in the path are in supported type*/
String filePath = file.getPath();
if(filePath.endsWith(".txt")) // Condition to check .txt file extension
tFileList.add(filePath);
}
return tFileList;
}
答案 1 :(得分:1)
您可以使用FilenameFilter
接口将所有TextFiles列入数组的任何相关文件。您可以在此处查看my answer,仅列出SD卡中的图像文件。
答案 2 :(得分:0)
import org.apache.commons.io.FilenameUtils
String extension=FilenameUtils.getExtension(filepath);