gpt4 book ai didi

java - 如何使用内容uri检查文件是否存在

转载 作者:行者123 更新时间:2023-12-02 13:01:00 25 4
gpt4 key购买 nike

我有一个音频文件的内容 uri,它是我从选择器 Intent 中获得的。

content://com.mi.android.globalFileexplorer.myprovider/external_files/KannadaGeeta/11CHAPTER10.mp3

我只是将上面的 uri 保存在数据库中。

现在,当用户再次打开我的应用时。我需要通知他他选择的最后一个 mp3 文件是否存在。如果存在那么只有我必须允许他继续否则我需要通知重新下载文件。

但我完全卡在这里,我不知道如何使用其内容 uri 检查文件是否存在。

请帮助我解决我的问题。

最佳答案

方法一:-好的,由于 Android 团队出于安全原因决定弃用 getExternalStorageDirectory。他们没有妥善解决很多问题。

对于这个问题我没有找到任何合适的答案。无论如何,这是使用已弃用方法的解决方法。

        var uri = Uri.parse("content://com.mi.android.globalFileexplorer.myprovider/external_files/KannadaGeeta/11CHAPTER10.mp3")
var vidPath = uri.path
vidPath = vidPath?.replace("external_files",Environment.getExternalStorageDirectory().toString())
val file = File(vidPath)

if (file.exists()) {
println("log yes $file")
} else {
println("log no $file")
}

这会工作得很好,但由于已弃用的方法,您可以使用它。

方法二:-另一种方法是使用 ACTION_OPEN_DOCUMENT然后在 onActivityResult 中必须添加

val contentResolver = applicationContext.contentResolver
val takeFlags: Int = Intent.FLAG_GRANT_READ_URI_PERMISSION or
Intent.FLAG_GRANT_WRITE_URI_PERMISSION
contentResolver.takePersistableUriPermission(selectedVideoUri!!, takeFlags)

然后,最后使用未过期的 content uri,可以检查文件是否存在。

DocumentFile.fromSingleUri(Uri.parse(contentUriStringfromdatabase)).exists()

关于java - 如何使用内容uri检查文件是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62878883/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com