通常我们拿到Android的图片相对路径后,通过file.delete方式来进行删除,但是有时会出现调用后文件仍然还在,但是检查大小发现大小变成了0,以下是修复的代码,在delete方法调用后调用:
val where = MediaStore.MediaColumns.DATA + "=?"
val selectionArgs = arrayOf(filePath)
val contentResolver = contentResolver
val filesUri = MediaStore.Files.getContentUri("external")
contentResolver.delete(filesUri, where, selectionArgs)
完整代码:
private fun deleteImageByPath(filePath: String) {
Thread {
val file = File(filePath)
if (file.exists()) {
file.delete()
val where = MediaStore.MediaColumns.DATA + "=?"
val selectionArgs = arrayOf(filePath)
val contentResolver = contentResolver
val filesUri = MediaStore.Files.getContentUri("external")
contentResolver.delete(filesUri, where, selectionArgs)
}
}.start()
}