如何解决如何删除 Android 10 上下载文件夹中的临时文件
在除 Android 之外的每个系统中都很简单,但我有一个应用程序需要在 SHARED EXTERNAL 下载文件夹中创建一个 csv 文件。关闭/重启手机/应用程序,文件仍然存在。然后我需要在使用新数据重新创建文件之前删除文件(某处的持久 URI?)。 (如果存在()删除)
我看到各种各样的文档都指向这个过程的 SAF,但是在任何地方都找不到关于如何执行这个简单的创建/删除过程的示例。如果可以在 API 28 上执行此操作,并且可以在 29+ 上运行,那就太好了。
没有 SAF 我已经这样做了:
fun writeCSV() {
val CSV_HEADER = "Last,First\n"
val mockData = "Tester,Joe\n"
val contentValues = ContentValues()
contentValues.put(MediaStore.Downloads.disPLAY_NAME,"aTest.csv")
contentValues.put(MediaStore.Downloads.MIME_TYPE,"text/csv")
contentValues.put(MediaStore.Downloads.IS_PENDING,true)
val uri = MediaStore.Downloads.getContentUri(MediaStore.VOLUME_EXTERNAL_PRIMARY)
val fileUri = contentResolver.insert(uri,contentValues)
if (fileUri != null) {
try {
val outputStream = contentResolver.openOutputStream(fileUri)
outputStream!!.write(CSV_HEADER.toByteArray())
outputStream!!.write(mockData.toByteArray())
outputStream!!.close()
contentValues.put(MediaStore.Images.Media.IS_PENDING,false)
contentResolver.update(fileUri,contentValues,null,null)
} catch (e: IOException) {
e.printstacktrace()
}
}
}
问题是当再次调用 fun 时,我需要删除此文件并使用新数据重新创建它,因为 Android 创建了“aTest (1).csv”而不是覆盖它。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。