2

私のアプリでは、ギャラリー内のフォルダーから画像を取得して配列リストに保存しています。今度は、拡張子が.jpgのファイルのみを抽出したいと思います。どうすればよいですか。

配列リストに保存するためのコードは次のとおりです。

  private List<String> ReadSDCard()
    {
     //It have to be matched with the directory in SDCard
     File f = new File("sdcard/data/crak");

     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*/
      tFileList.add(file.getPath());
     }
     return tFileList;
    }
4

4 に答える 4

28

FilenameFilterインターフェイスを使用して、ファイルをフィルタリングできます。

コードラインを変更する

File[] files=f.listFiles();

以下のように:

File[] jpgfiles = f.listFiles(new FileFilter() {
            @Override
            public boolean accept(File file)
            {
                return (file.getPath().endsWith(".jpg")||file.getPath().endsWith(".jpeg"));
            }
});
于 2013-01-16T07:24:02.597 に答える
2

Java文字列クラス.endsWith()のメソッドを使用して、ファイルパスからファイル拡張子を確認します。

方法:

public boolean endsWith(String suffix)

あなたのコードは、

private List<String> ReadSDCard()
{
     //It have to be matched with the directory in SDCard
     File f = new File("sdcard/data/crak");

     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(".jpg")) // Condition to check .jpg file extension
      tFileList.add(filePath);
     }
 return tFileList;
}
于 2013-01-16T07:16:55.730 に答える
0
private List<String> ReadSDCard()
{

    String extension = "";
    File f = new File("sdcard/data/crak");

    File[] files=f.listFiles();

     for(int i=0; i<files.length; i++)
     {

         File file = files[i];
         int ind = files[i].getPath().lastIndexOf('.');
         if (ind > 0) {
             extension = files[i].getPath().substring(i+1);// this is the extension
             if(extension.equals("jpg"))
             {
                 tFileList.add(file.getPath());
             }
         }
     }
 return tFileList;
}
于 2013-01-16T07:17:27.320 に答える
-2

コードに以下を追加します。

          String filePath = file.getPath();
          if(filePath.endsWith(".jpg")) 
          tFileList.add(filePath);
于 2013-01-16T07:28:15.883 に答える