如何使用新的lollipop SD Card Access API删除和修改文件

How to use the new lollipop SD Card Access API to delete and modify files

所以我有一个音乐播放器应用程序。

很多时候用户播放了一首歌曲并想将其删除。很多时候他发现有重复的文件,因此想删除它。 许多用户拥有超过数千首歌曲,如果用户必须指出他要删除的文件的位置,这将不是一个合适的解决方案。

我遇到了这个How to use the new SD card access API presented for Android 5.0 (Lollipop)?

它告诉我们如何在给定整个 uri 的情况下创建文件。

但合适的解决方案是,如果他可以只选择根目录(SD 卡)而不是整个路径并授予所需的权限,应用程序可以管理其余部分。这正是我想要实现的。

鉴于我只有要删除的文件的文件路径和sd卡访问框架的根目录的uri,删除文件的最佳方法是什么? 这可能吗?或者每次用户必须删除文件时,他也必须指出该文件的位置?

您提到的link(How to use the new SD-Card access API presented for Lollipop)给出了如何使用ACTION_OPEN_DOCUMENT_TREE提示用户选择根目录的说明。

用户选择根节点后,您的代码将具有 DocumentFile that represents the root node. You say you already have the file path. If so then use the segments of the file path and follow the path down the hierarchy using DocumentFile.html#listFiles()

您最终将获得代表您要删除的文件的 DocumentFile,然后调用 DocumentFile.html#delete()