2019 May 26.
package YOUR.PACKAGE.APPLICATION;
/*
 * Re-use of https://akira-watson.com/android/file_search.html
 */
import android.os.Environment;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
public class SearchExternalStorageFile {
    // 外部ストレージ内のfileStrにマッチするファイルを検索
    public String[] searchFiles( String fileStr ){
        // マッチしたファイルの絶対パスを格納する
        List listMatchedFiles = new ArrayList<>();
        // String 型の ArrayList を生成
        List listDirectory = new ArrayList<>();
        // 外部ストレージのパスを取得する、パスは機種によって異なる
        File file = Environment.getExternalStorageDirectory();
        String storagePath = file.getPath();
        listDirectory.add(storagePath);
        int m = 0;
        int n = 0;
        String[] fileNames;
        String imgPath = null, fName;
        while(listDirectory.size() > m){
            File directory = new File(listDirectory.get(m));
            fileNames = directory.list();
            n = 0;
            while(fileNames.length > n){
                File subFile;
                subFile = new File(directory.getPath() + "/" + fileNames[n]);
                if (subFile.isDirectory()) {
                    listDirectory.add(directory.getPath() + "/" + fileNames[n]);
                } else {
                    if (fileNames[n].contains(fileStr)) {
                        listMatchedFiles.add(directory.getPath() + "/" + fileNames[n]);
                    }
                }
                n++;
            }
            m++;
        }
        int listSize = listMatchedFiles.size();
        return listMatchedFiles.toArray(new String[listSize]);
    }
}
  
 
0 件のコメント:
コメントを投稿