java - 无法删除可移动存储上的文件

标签 java android

我试图通过以下行从 Android Lollipop 上的本地存储中删除文件:

new File(path).delete();

删除驻留在内部存储中的文件工作正常。但未能对位于外部可移动存储上的文件执行此操作。我已经检查过该文件确实存在但不能被覆盖。此外,该应用程序已获得许可。

In order to read or write files on the external storage, your app must acquire the READ_EXTERNAL_STORAGE or WRITE_EXTERNAL_STORAGE system permissions.

正如文档中所述,但运气不佳。

在 Google 上搜索可用的解决方案,但无法解决问题。

最佳答案

从 KitKat (API 19) 开始,您无法删除可移动媒体上的文件。您必须通过 Storage Access Framework 与用户交互,获取要删除的文件的访问对象 - DocumentFile - 并对其调用delete 操作。您可以阅读this深入了解这场噩梦。

关于java - 无法删除可移动存储上的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44194779/

相关文章:

java - 使用 Java 中的 Google Translate V2 API 客户端库发送翻译请求

java - 为什么我无法启动 jar 文件?

Java 引用传递不起作用?

java - 错误:无法从REMOTE HBASE数据库获取表列表?

android - 是否可以在不添加播放服务广告依赖的情况下获取 android 广告 ID?

java - 如何从Java中的响应中删除某些字符?

android - 多个 dex 文件定义 Lorg/apache/cordova/BuildHelper

android - MediaRecorder 给出启动错误或 IllegalStateException

java - 从 android 中的 res/raw 文件夹读取后,RingtoneManager 无法播放铃声

android - 如何分享imageview的图像?