Cordova - Android -查找USB存储上的最新文件

agyaoht7  于 2023-08-06  发布在  Android
关注(0)|答案(1)|浏览(117)

我正在用Java编写Android插件。一个功能是检测USB存储连接并返回到该USB存储的路径。这段代码工作正常,但我有一个问题,第二个函数应该从第一个函数获得这个路径(例如:/storage/BA 4862 GJI),列出此USB根目录中的所有文件,并返回具有给定扩展名的最新文件(例如.txt).从Android 11权限MANAGE_EXTERNAL_STORAGE是不够的了.你能指导我如何获得适当的权限,并获得文件列表?获取具有给定扩展名的所有文件的函数如下所示:

private List<File> getFilesWithExtension(File directory, final String extension) {
    try {
        List<File> found =  Files.walk(directory.toPath(), 1)
                .filter(p -> {
                    try {
                        return Files.isRegularFile(p) && Files.isReadable(p);
                    } catch (Exception e) {
                        return false;
                    }
                })
                .filter(file -> file.getFileName().toString().endsWith(extension))
                .map(Path::toFile)
                .collect(Collectors.toList());
        return found;
    } catch (IOException e) {
        Log.e("USBManager", "Failed to retrieve files with extension: " + e.getMessage());
        return new ArrayList<>();
    }
}

字符串

  • 谢谢-谢谢
2hh7jdfx

2hh7jdfx1#

您应该从getExternalFilesDirs()获取路径。
如果该功能不提供路径到usb驱动器,那么你必须使用SAF与ACTION_OPEN_DOCUMENT_TREE,让用户选择驱动器。

相关问题