【发布时间】:2020-11-23 08:40:04
【问题描述】:
我目前正在从我的 FileExplorer 获取此路径
val path = "content://com.android.externalstorage.documents/tree/primary:Download"
我正在尝试删除此位置的内容:
val fileFolder = File(path)
deleteFolderContent(fileFolder)
private fun deleteFolderContent(fileFolder: File) {
val files = fileFolder.listFiles()
if (files.isNullOrEmpty()) {
return
} else {
for (file in files) {
file.delete()
}
}
}
但files 始终为空,我无法删除内容。我究竟做错了什么?谁能帮我?谢谢。
更新:
为了获得这个“路径”,我这样做了:
val intent = Intent(Intent.ACTION_OPEN_DOCUMENT_TREE)
startActivityForResult(intent, SELECT_FOLDER_REQUEST_CODE)
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (requestCode == SELECT_FOLDER_REQUEST_CODE && resultCode == RESULT_OK) {
val uriTree = data?.data
}
}
【问题讨论】:
-
您威胁将内容方案作为文件系统路径。那是怎么回事。
-
您使用了哪个操作来获取该 uri/content 方案?
-
@blackapps 我已经用获取问题的方法更新了问题。
-
您获得了一个 SAF uri。你可以试试。 DocumentFile.deleteFile() 或 DocumentFile.deleteDirectory() 中的任何一个。
-
此外,您不会删除内容,而是仅在目录为空时才删除目录本身...
标签: android path android-storage