如何删除 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 (将#修改为@)