在整个SD卡中搜索特定文件

时间:2012-07-08 21:26:31

标签: java android file search

我知道如何搜索文件,但使用特定路径,例如/ sdcard / picture / file。有没有办法搜索该特定文件。示例:搜索文件。然后应用程序将其定位在/ sdcard / picture中。然后擦除它。

有任何帮助吗?谢谢(我知道如何擦除文件,但必须写完整个路径)

2 个答案:

答案 0 :(得分: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卡上找到所有出现的该文件名,您必须使用List来收集并返回所有找到的匹配项。

答案 1 :(得分: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();
        }
    }
}