我仍然是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(我想是长类型),但是我还没有找到如何获取它的
预先感谢您的帮助!
答案 0 :(得分:1)
要构建File
对象,请使用File
构造函数。要为某个根目录之外的位置构建File
对象,请使用两参数File(File, String)
构造函数:
val downloadedFile = File(Environment.getExternalStorageDirectory(), "Download/$myFilename$myExtensionVar")
除非您从Uri
那里得到DownloadManager
,否则不需要Uri
。{p1
我在外部存储以及如何使用它方面写了更多here。
答案 1 :(得分:1)
在科特林
file.deleteRecursively()