ここで、Eclipse ADT から実行してファイル システムを検索できる単純で愚かな Java メソッドを実装しました。
public static List<File> getFilesOfDirectory(File dir, String fileNamePart) {
List<File> result;
if (dir.exists() && dir.isDirectory()
&& !dir.getAbsolutePath().contains("root")
&& dir.getAbsolutePath().split("/").length < 10) {
Log.i("fileSearch", "search in directory " + dir.getAbsolutePath());
File[] files = dir.listFiles();
if (files != null)
result = new ArrayList<File>(Arrays.asList(files));
else
result = new ArrayList<File>();
}
else
result = Collections.emptyList();
/* Filter for interesting files. */
List<File> filteredResult = new ArrayList<File>();
for (File file : result) {
if (file.getAbsolutePath().toLowerCase()
.contains(fileNamePart.toLowerCase()))
filteredResult.add(file);
// no else.
}
/* Search recursively. */
List<File> furtherResults = new ArrayList<File>();
for (File file : result) {
if (file.isDirectory())
furtherResults.addAll(getFilesOfDirectory(file, fileNamePart));
// no else.
}
// end for.
filteredResult.addAll(furtherResults);
return filteredResult;
}
このメソッドは、検索するルート ディレクトリを表すファイル オブジェクト (例: new File("/")) と、検索するファイル名を表す文字列 (例: "voltage") を使用して呼び出すことができます。