ファイルを検索する方法は知っていますが、/sdcard/picture/file などの特定のパスを使用しています。その特定のファイルを検索する方法はありますか。例: ファイルを検索します。次に、アプリはそれを /sdcard/picture で見つけます。次に、それを消去します。
何か助けはありますか?ありがとう(ファイルを消去する方法は知っていますが、パス全体を書く必要があります)
この問題は、外部ストレージ/SDカードのルートディレクトリから再帰的に解決できます。
私の頭からいくつかのテストされていないコード(メソッド名が間違っている可能性があります)
public File findFile(File dir, String name) {
File[] children = dir.listFiles();
for(File child : children) {
if(child.isDirectory()) {
File found = findFile(child, name);
if(found != null) return found;
} else {
if(name.equals(child.getName())) return child;
}
}
return null;
}
SDカードでそのファイル名のすべての出現箇所を検索する場合は、リストを使用して、見つかったすべての一致を収集して返す必要があります。
これを試して:
public class Test {
public static void main(String[] args) {
File root = new File("/sdcard/");
String fileName = "a.txt";
try {
boolean recursive = true;
Collection files = FileUtils.listFiles(root, null, recursive);
for (Iterator iterator = files.iterator(); iterator.hasNext();) {
File file = (File) iterator.next();
if (file.getName().equals(fileName))
System.out.println(file.getAbsolutePath());
file.delete();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}