如何通过 Kotlin 使用 DocumentProvider 删除 android 外部存储中 /download(或任何其他文件夹)中的文件?
How to delete a file in /download (ora any other folder) in the android external storage with DocumentProvider through Kotlin?
我[仍然]对 android 开发以及 Java 和 Kotlin 很陌生(Java 中的解释也可以,但是,我正在研究它另外,Kotlin 是首选),我正在努力将一个简单的下载文件删除到 ExternalStorage 中。
当然,我启用了读写权限,即使这段代码 returns a "True",我仍然可以在我的下载文件夹中看到未修改的文件
这里的代码:
___UPDATE
// uri of my file in external storage ~/Download dir
var uri = Uri.parse (Environment.getExternalStorageDirectory().getPath() + "/Download/$myFilename$myExtensionVar")
// file object pointing at uri of file in external storage
val downloadedFile = File(uri.toString())
var deletedBool:Boolean = downloadedFile.delete()
println("myTag - deleted Boolean: $deletedBool")
if (deletedBool){
println("myTag - uri of file-to-be-deleted: $uri")
var secondStepToDelete:Int = context.getContentResolver().delete(uri, null, null)
println("myTag - second Step for deletion: $secondStepToDelete")
}
我试图删除的文件是一个多媒体文件 (.mp3),我添加了第二个代码块(IF 语句中的那个),因为我发现它应该可以工作,与 "DocumentProvider" (我是新手,我仍然不知道如何正确调用它的方法..)但是,当然,它根本不起作用。
我想我确实需要存储在外部存储器中的文件的 ID(我猜是长类型),但是我还没有找到如何获取它
在此先感谢您的帮助!
要构建 File
对象,请使用 File
构造函数。要为某个根目录之外的位置构建一个 File
对象,请使用双参数 File(File, String)
构造函数:
val downloadedFile = File(Environment.getExternalStorageDirectory(), "Download/$myFilename$myExtensionVar")
除非您从 DownloadManager
或其他什么地方得到 Uri
,否则没有 Uri
需要 delete()
。
我写了更多关于外部存储以及如何使用它的文章here。
在科特林中
file.deleteRecursively()
我[仍然]对 android 开发以及 Java 和 Kotlin 很陌生(Java 中的解释也可以,但是,我正在研究它另外,Kotlin 是首选),我正在努力将一个简单的下载文件删除到 ExternalStorage 中。 当然,我启用了读写权限,即使这段代码 returns a "True",我仍然可以在我的下载文件夹中看到未修改的文件 这里的代码: ___UPDATE
// uri of my file in external storage ~/Download dir
var uri = Uri.parse (Environment.getExternalStorageDirectory().getPath() + "/Download/$myFilename$myExtensionVar")
// file object pointing at uri of file in external storage
val downloadedFile = File(uri.toString())
var deletedBool:Boolean = downloadedFile.delete()
println("myTag - deleted Boolean: $deletedBool")
if (deletedBool){
println("myTag - uri of file-to-be-deleted: $uri")
var secondStepToDelete:Int = context.getContentResolver().delete(uri, null, null)
println("myTag - second Step for deletion: $secondStepToDelete")
}
我试图删除的文件是一个多媒体文件 (.mp3),我添加了第二个代码块(IF 语句中的那个),因为我发现它应该可以工作,与 "DocumentProvider" (我是新手,我仍然不知道如何正确调用它的方法..)但是,当然,它根本不起作用。 我想我确实需要存储在外部存储器中的文件的 ID(我猜是长类型),但是我还没有找到如何获取它
在此先感谢您的帮助!
要构建 File
对象,请使用 File
构造函数。要为某个根目录之外的位置构建一个 File
对象,请使用双参数 File(File, String)
构造函数:
val downloadedFile = File(Environment.getExternalStorageDirectory(), "Download/$myFilename$myExtensionVar")
除非您从 DownloadManager
或其他什么地方得到 Uri
,否则没有 Uri
需要 delete()
。
我写了更多关于外部存储以及如何使用它的文章here。
在科特林中
file.deleteRecursively()