From 7dcdf0a28a1b6108112585f3c65405083a0bd0cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=9B=9B=E6=9C=88=E6=A3=AE=E6=9E=97?= Date: Mon, 1 Jul 2024 10:48:39 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8Drevert=E5=91=BD=E4=BB=A4?= =?UTF-8?q?=E6=B2=A1=E6=9C=89=E5=A4=84=E7=90=86=E7=A7=BB=E5=8A=A8=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/kotlin/mcpatch/interactive/Revert.kt | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/main/kotlin/mcpatch/interactive/Revert.kt b/src/main/kotlin/mcpatch/interactive/Revert.kt index 600e347..6a8ff3d 100644 --- a/src/main/kotlin/mcpatch/interactive/Revert.kt +++ b/src/main/kotlin/mcpatch/interactive/Revert.kt @@ -41,11 +41,18 @@ class Revert val reader = PatchFileReader(version, ZipFile(patchFile.file, "utf-8")) + println("$version >>") + // 删除旧文件和旧目录,还有创建新目录 reader.meta.oldFiles.map { (historyDir + it) }.forEach { it.delete() } - reader.meta.oldFolders.map { (historyDir + it) }.forEach { it.delete() } reader.meta.newFolders.map { (historyDir + it) }.forEach { it.mkdirs() } + // 移动文件 + for (move in reader.meta.moveFiles) { + (historyDir + move.to).parent.mkdirs() + (historyDir + move.from).move(historyDir + move.to) + } + for ((index, entry) in reader.withIndex()) { Log.info("[$version] 解压(${index + 1}/${reader.meta.newFiles.size}) ${entry.meta.path}") @@ -57,6 +64,8 @@ class Revert file.file.bufferedOutputStream().use { stream -> entry.copyTo(stream) } } + reader.meta.oldFolders.map { (historyDir + it) }.forEach { it.delete() } + Log.info("[$version] 版本 $version 处理完成") } @@ -74,4 +83,4 @@ class Revert Log.info("所有目录已经还原!") } -} \ No newline at end of file +}