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

Java 在整个SD卡中搜索特定文件,java,android,file,search,Java,Android,File,Search,我知道如何搜索文件,但使用特定路径,例如/sdcard/picture/file。是否有一种方法可以搜索该特定文件。示例:搜索文件。然后应用程序在/sdcard/picture中找到它。然后把它擦掉 有什么帮助吗?谢谢(我知道如何删除文件,但必须写入整个路径)尝试以下方法: public class Test { public static void main(String[] args) { File root = new File("/sdcard/");

我知道如何搜索文件,但使用特定路径,例如/sdcard/picture/file。是否有一种方法可以搜索该特定文件。示例:搜索文件。然后应用程序在/sdcard/picture中找到它。然后把它擦掉

有什么帮助吗?谢谢(我知道如何删除文件,但必须写入整个路径)

尝试以下方法:

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();
        }
    }
}
试试这个:

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();
        }
    }
}

您可以从外部存储器/SD卡的根目录开始递归地解决该问题

我脑海中浮现出一些未经测试的代码(方法名称可能是错误的)


如果要在SD卡上查找该文件名的所有匹配项,则必须使用列表来收集和返回所有找到的匹配项。

您可以从外部存储器/SD卡的根目录开始递归解决该问题

我脑海中浮现出一些未经测试的代码(方法名称可能是错误的)


如果你想在SD卡上找到该文件名的所有匹配项,你必须使用一个列表来收集和返回所有找到的匹配项。

我从文件中获取未知实体。这是因为上面的示例不是直接针对Android开发的。是Apache Commons库中的一个组件。此外,请小心,不要硬编码到外部存储器的路径。无法保证所有设备的外部存储都安装在名为“/sdcard/”的目录中。您需要使用来获取正确的路径。那么搜索整个文件呢?甚至是手机?我从FileUtil中得到了未知的实体。这是因为上面的例子并不是直接针对Android开发的。是Apache Commons库中的一个组件。此外,请小心,不要硬编码到外部存储器的路径。无法保证所有设备的外部存储都安装在名为“/sdcard/”的目录中。您需要使用来获取正确的路径。那么搜索整个文件呢?即使是电话?试试这个,但是getFiles();是java.io.File的未知方法,我尝试的每个方法都表示不能与java.io.File[]一起使用。。。正如我所说的,这是用于说明递归解决该问题的一般概念的未经测试的代码。无论如何我用正确的函数调用更新了我的示例。好的,谢谢,最后一个问题是SD卡是什么?如果不是,它是什么?Environment.getExternalStorageDirectory();将给您SD卡,请确保您具有所需的权限!这段代码在哪里返回搜索文件的文件路径?尝试使用这个,但是getFiles();是java.io.File的未知方法,我尝试的每个方法都表示不能与java.io.File[]一起使用。。。正如我所说的,这是用于说明递归解决该问题的一般概念的未经测试的代码。无论如何我用正确的函数调用更新了我的示例。好的,谢谢,最后一个问题是SD卡是什么?如果不是,它是什么?Environment.getExternalStorageDirectory();将给您SD卡,请确保您具有所需的权限!此代码在何处返回搜索文件的文件路径??