From 98545e6f6ffe34a7c869c7ca6bb2add2ce89e08f Mon Sep 17 00:00:00 2001 From: Him188 Date: Fri, 8 Jan 2021 09:44:29 +0800 Subject: [PATCH] [Review] FileCacheStrategy: delete temp file on closure --- .../src/commonMain/kotlin/utils/FileCacheStrategy.kt | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/mirai-core-api/src/commonMain/kotlin/utils/FileCacheStrategy.kt b/mirai-core-api/src/commonMain/kotlin/utils/FileCacheStrategy.kt index 9113145a1..3fc7c7eef 100644 --- a/mirai-core-api/src/commonMain/kotlin/utils/FileCacheStrategy.kt +++ b/mirai-core-api/src/commonMain/kotlin/utils/FileCacheStrategy.kt @@ -82,10 +82,15 @@ public interface FileCacheStrategy { @Throws(IOException::class) override fun newCache(input: InputStream, formatName: String?): ExternalResource { - return createTempFile().apply { + val file = createTempFile() + return file.apply { deleteOnExit() outputStream().use { out -> input.copyTo(out) } - }.toExternalResource(formatName) + }.toExternalResource(formatName).apply { + closed.invokeOnCompletion { + kotlin.runCatching { file.delete() } + } + } } }