0

ファイルを検索する方法は知っていますが、/sdcard/picture/file などの特定のパスを使用しています。その特定のファイルを検索する方法はありますか。例: ファイルを検索します。次に、アプリはそれを /sdcard/picture で見つけます。次に、それを消去します。

何か助けはありますか?ありがとう(ファイルを消去する方法は知っていますが、パス全体を書く必要があります)

4

2 に答える 2

3

この問題は、外部ストレージ/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カードでそのファイル名のすべての出現箇所を検索する場合は、リストを使用して、見つかったすべての一致を収集して返す必要があります。

于 2012-07-08T21:44:25.287 に答える
0

これを試して:

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();
        }
    }
}
于 2012-07-08T21:43:38.020 に答える