如何使用DocumentProvider通过Kotlin删除android外部存储中的/ download(ora any other folder)中的文件?

问题描述 投票:0回答:1

我仍然是关于Android开发以及关于Java和Kotlin的新手(也是Java中的解释可以,但是,我也正在研究它,Kotlin是首选的)我正在努力删除一个简单的下载文件进入ExternalStorage。当然我启用了读写权限,即使这段代码返回“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(长型我猜),但我还没有找到如何获得它

在此先感谢您的帮助!

android kotlin android-external-storage
1个回答
1
投票

要构建File对象,请使用File构造函数。要为某个根目录之外的位置构建File对象,请使用双参数File(File, String)构造函数:

val downloadedFile = File(Environment.getExternalStorageDirectory(), "Download/$myFilename$myExtensionVar")

除非你从Uri或其他东西得到DownloadManager,否则你需要Uri delete()

我在外部存储上有更多写的here以及如何使用它。

© www.soinside.com 2019 - 2024. All rights reserved.