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

Interface を使用FilenameFilterして、すべての TextFiles を配列に関連するファイルとしてショートリストに登録できます。ここで私の回答を確認して、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 に答える