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 ){
// マッチしたファイルの絶対パスを格納する
ListlistMatchedFiles = new ArrayList<>();
// String 型の ArrayList を生成
ListlistDirectory = 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]);
}
}