0

我正在使用以下代码列出 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;
}
4

3 回答 3

1

使用Java String 类.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;
}
于 2013-01-17T07:28:31.543 回答
1

您可以使用FilenameFilter接口来筛选所有文本文件,这些文本文件是与数组相关的任何文件。您可以在此处查看我的答案,以仅列出 SD 卡中的图像文件。

于 2013-01-17T07:34:05.653 回答
0
import org.apache.commons.io.FilenameUtils

String extension=FilenameUtils.getExtension(filepath);
于 2015-10-13T04:25:34.770 回答