gpt4 book ai didi

android - 如何在相对路径中从 MediaStore 读取文件?

转载 作者:行者123 更新时间:2023-12-04 14:12:12 28 4
gpt4 key购买 nike

在 Android 10 或更高版本中,我使用 MediaStore 将文件保存在下载、共享存储中。
我用来保存文件的代码如下:

        GlobalScope.launch {
val values = ContentValues().apply {
put(MediaStore.Downloads.DISPLAY_NAME, "file.txt")
put(MediaStore.Downloads.MIME_TYPE, "text/plain")
put(MediaStore.Downloads.IS_PENDING, 1)
put(MediaStore.Downloads.RELATIVE_PATH,Environment.DIRECTORY_DOWNLOADS+ File.separator+"MyApp/SubDir")
}

val collection = MediaStore.Downloads.getContentUri(MediaStore.VOLUME_EXTERNAL_PRIMARY)
val item = contentResolver.insert(collection, values)!!

contentResolver.openFileDescriptor(item, "w", null).use {
FileOutputStream(it!!.fileDescriptor).use { outputStream ->
outputStream.write("test file".toByteArray())
outputStream.close()
}
}

values.clear()
values.put(MediaStore.Images.Media.IS_PENDING, 0)
contentResolver.update(item, values, null, null)
现在我的文件保存在 Downloads/myApp/subDir/file.txt
如果是这样,如果我不知道这个文件的 Uri 但知道用于保存它的 RELATIVE_PATH,我该如何读取这个文件?

最佳答案

现在可以借助 SimpleStorage :

val fileList = MediaStoreCompat.fromRelativePath(this, Environment.DIRECTORY_DOWNLOADS)

val singleFile = MediaStoreCompat.fromRelativePath(this, Environment.DIRECTORY_DOWNLOADS + "/MyApp/SubDir/", "file.txt")

关于android - 如何在相对路径中从 MediaStore 读取文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63435386/

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