【发布时间】:2021-09-16 21:28:57
【问题描述】:
这是新的作用域存储。
var dlRequest = DownloadManager.Request(Uri.parse(urlToPhoto))
...
var file = File("somedir", filename) // File inside directory "somedir"
dlRequest.setDestinationInExternalPublicDir(Environment.DIRECTORY_PICTURES, file.path)
到目前为止一切顺利,照片下载到/Pictures/somedir/
现在我想删除目录和里面的所有文件。我该怎么做?
更新:使用范围存储我有read here 无法再通过路径访问文件,您必须使用媒体存储 URI。我可以获取URI并删除文件,但我仍然没有找到删除目录的解决方案。
【问题讨论】:
-
所用设备的Android版本?
-
你在滥用 File 类。 File 类用于文件。并且文件具有完整路径。 “somedir/filename”不是完整路径。试试 File.exists()。更好:dlRequest.setDestinationInExternalPublicDir(Environment.DIRECTORY_PICTURES, "somedir/filename")
-
您无法在 Android 11+ 上删除该目录,因为它属于下载管理器。要删除文件,请使用您可以从 DownloadManager 获得的 uri。
-
这更有意义,我使用的是 Android 11。必须有另一种方法将文件存储在子目录中,以便您之后删除该目录。或者您是说我需要从下载管理器中保存 URI?
-
是的,保存所有的尿。您也可以为他们查询媒体商店。不知道。试试吧。
标签: android kotlin android-storage