diff --git a/app/src/main/java/io/legado/app/ui/about/CrashLogsDialog.kt b/app/src/main/java/io/legado/app/ui/about/CrashLogsDialog.kt index f9eb109f2..a77c9fac9 100644 --- a/app/src/main/java/io/legado/app/ui/about/CrashLogsDialog.kt +++ b/app/src/main/java/io/legado/app/ui/about/CrashLogsDialog.kt @@ -141,9 +141,9 @@ class CrashLogsDialog : BaseDialogFragment(R.layout.dialog_recycler_view), val backupPath = AppConfig.backupPath if (!backupPath.isNullOrEmpty()) { val uri = Uri.parse(backupPath) - FileDoc.fromUri(uri, true).list()?.let { - - } + FileDoc.fromUri(uri, true) + .find("crash") + ?.delete() } }.onError { context.toastOnUi(it.localizedMessage) diff --git a/app/src/main/java/io/legado/app/utils/FileDocExtensions.kt b/app/src/main/java/io/legado/app/utils/FileDocExtensions.kt index cb38903a3..f0353472c 100644 --- a/app/src/main/java/io/legado/app/utils/FileDocExtensions.kt +++ b/app/src/main/java/io/legado/app/utils/FileDocExtensions.kt @@ -35,6 +35,24 @@ data class FileDoc( return uri.readBytes(appCtx) } + fun asDocumentFile(): DocumentFile? { + if (isContentScheme) { + return if (isDir) { + DocumentFile.fromTreeUri(appCtx, uri) + } else { + DocumentFile.fromSingleUri(appCtx, uri) + } + } + return null + } + + fun asFile(): File? { + if (isContentScheme) { + return null + } + return File(uri.path!!) + } + companion object { fun fromUri(uri: Uri, isDir: Boolean): FileDoc { @@ -242,6 +260,13 @@ fun FileDoc.writeText(text: String) { } } +fun FileDoc.delete() { + asFile()?.let { + FileUtils.delete(it, true) + } + asDocumentFile()?.delete() +} + /** * DocumentFile 的 listFiles() 非常的慢,尽量不要使用 */