From 5f0ee1e4b9ad5f9cbd7349b92018123217eb9a76 Mon Sep 17 00:00:00 2001 From: crudelis Date: Wed, 8 Mar 2023 00:02:29 +0900 Subject: [PATCH] - Add Sign, BugFix Directory DeepMove --- CommonLibrary/Extensions.cs | 38 ++++++++++++++++++- .../Mitria_Minecraft_Launcher.csproj | 3 ++ .../Updater/GameUpdateManager.cs | 5 ++- 3 files changed, 43 insertions(+), 3 deletions(-) diff --git a/CommonLibrary/Extensions.cs b/CommonLibrary/Extensions.cs index fbb99d4..ae09064 100644 --- a/CommonLibrary/Extensions.cs +++ b/CommonLibrary/Extensions.cs @@ -1,4 +1,5 @@ -using System.Text; +using System.IO; +using System.Text; namespace CommonLibrary { @@ -57,5 +58,40 @@ namespace CommonLibrary { return default(T).Equals(data); } + + public static void DeepMove(this DirectoryInfo sourceDirectoryInfo, DirectoryInfo targetDirectoryInfo) + { + if (!sourceDirectoryInfo.Exists) + { + return; + } + + if (sourceDirectoryInfo.Root == targetDirectoryInfo.Root) + { + sourceDirectoryInfo.MoveTo(targetDirectoryInfo.FullName); + return; + } + + DirectoryInfo[] directoryInfos = sourceDirectoryInfo.GetDirectories("*", SearchOption.AllDirectories); + FileInfo[] fileInfos = sourceDirectoryInfo.GetFiles("*", SearchOption.AllDirectories); + + foreach (var directoryInfo in directoryInfos) + { + DirectoryInfo targetDirectory = new DirectoryInfo(directoryInfo.FullName.Replace(sourceDirectoryInfo.FullName, targetDirectoryInfo.FullName)); + if (!targetDirectory.Exists) + { + targetDirectory.Create(); + } + } + + foreach (var file in fileInfos) + { + DirectoryInfo targetDirectory = new DirectoryInfo(file.DirectoryName.Replace(sourceDirectoryInfo.FullName, targetDirectoryInfo.FullName)); + string targetFileName = System.IO.Path.Combine(targetDirectory.FullName, file.Name); + + file.CopyTo(targetFileName, true); + } + sourceDirectoryInfo.Delete(true); + } } } \ No newline at end of file diff --git a/Mitria_Minecraft_Launcher/Mitria_Minecraft_Launcher.csproj b/Mitria_Minecraft_Launcher/Mitria_Minecraft_Launcher.csproj index d5e85ca..8442d0e 100644 --- a/Mitria_Minecraft_Launcher/Mitria_Minecraft_Launcher.csproj +++ b/Mitria_Minecraft_Launcher/Mitria_Minecraft_Launcher.csproj @@ -287,4 +287,7 @@ + + call "c:\Program Files (x86)\Windows Kits\10\App Certification Kit\signtool.exe" sign /tr http://timestamp.digicert.com /td sha256 /fd sha256 /n "Crudelis Private Root Certificate Authority" $(TargetPath) + \ No newline at end of file diff --git a/Mitria_Minecraft_Launcher/Updater/GameUpdateManager.cs b/Mitria_Minecraft_Launcher/Updater/GameUpdateManager.cs index f5918cb..d23e57f 100644 --- a/Mitria_Minecraft_Launcher/Updater/GameUpdateManager.cs +++ b/Mitria_Minecraft_Launcher/Updater/GameUpdateManager.cs @@ -151,8 +151,9 @@ namespace Mitria_Minecraft_Launcher.Updater if (System.IO.Directory.Exists(oldScreenshotsDirectory) && System.IO.Directory.GetFiles(oldScreenshotsDirectory, "*", System.IO.SearchOption.AllDirectories).Length > 0) { Log.INFO("[Package] Screenshots Directory Backup : " + newScreenshotsDirectory); - - System.IO.Directory.Move(oldScreenshotsDirectory, newScreenshotsDirectory); + DirectoryInfo oldScreenshotsDirectoryInfo = new DirectoryInfo(oldScreenshotsDirectory); + DirectoryInfo newScreenshotsDirectoryInfo = new DirectoryInfo(newScreenshotsDirectory); + oldScreenshotsDirectoryInfo.DeepMove(newScreenshotsDirectoryInfo); } Extensions.EmptyDirectory(rootDirectoryInfo.FullName);