Java 如何从可移动/辅助SD卡中删除文件

Java 如何从可移动/辅助SD卡中删除文件,java,android,Java,Android,我想从可移动sd卡上删除一个文件,我尝试了很多方法,但都没有成功 尝试: file.delete(); 及 及 及 所有这些都不会删除该文件 我想从可移动sd卡中删除一个文件 一般来说,你不能 如果将文件放在上下文位置之一(getExternalFilesDirs()等),则应该能够使用文件对象上的delete()将其删除 如果这是其他文件,则您无权对其执行任何操作,包括删除它 在安卓Q上也是如此 欢迎您使用存储访问框架(例如,ACTION\u OPEN\u DOCUMENT,ACTION\u

我想从可移动sd卡上删除一个文件,我尝试了很多方法,但都没有成功

尝试:

file.delete();

所有这些都不会删除该文件

我想从可移动sd卡中删除一个文件

一般来说,你不能

如果将文件放在
上下文
位置之一(
getExternalFilesDirs()
等),则应该能够使用
文件
对象上的
delete()
将其删除

如果这是其他文件,则您无权对其执行任何操作,包括删除它

在安卓Q上也是如此

欢迎您使用存储访问框架(例如,
ACTION\u OPEN\u DOCUMENT
ACTION\u OPEN\u DOCUMENT\u TREE
)并以这种方式处理内容


我正在努力工作的文件探索


安卓Q严格限制了整个应用类别。我建议您构建其他内容。

是的,我在@jackz314files.delete()中添加了这些权限,不做任何事情java.lang.NullPointerException:尝试调用虚拟方法“android.os.Bundle android.content.ContentProviderClient.call(java.lang.String,java.lang.String,android.os.Bundle)'在空对象引用上,当我使用此文档contract.deleteDocument(context.getContentResolver(),Uri.fromFile(file)时会出现此错误;@jackz314我正在尝试使用文件探索,我可以将文件用于很多事情,例如路径之一/storage/extSdCard/Download@jackz314it返回true@jackz314我在android lolipop上面临的问题。这些设备有什么解决方案吗?@aboahmad:使用存储访问框架。有关如何使用存储访问框架的更多信息,请参阅移动存储与Android配合使用。对于lolipop和更高版本,您需要将其放置在答案中所述的“上下文位置”(或者只设置文件所在的“上下文位置”,例如,整个外部存储)。检查此项我将检查这些上下文位置,并希望它能工作,非常感谢@jackz314
File file = new File(selectedFilePath);
boolean deleted = file.delete();
DocumentFile documentFile = DocumentFile.fromFile(file);
documentFile.delete();
DocumentsContract.deleteDocument(context.getContentResolver(),
  Uri.fromFile(file );