런처 파일 삭제 버그 수정
This commit is contained in:
2023-02-02 11:05:28 +09:00
parent 2d7e9a9fe5
commit 6fa68e5306
3 changed files with 34 additions and 6 deletions

View File

@@ -47,7 +47,8 @@ namespace Mitria_Minecraft_Launcher
{
directory.Create();
}
files.AddRange(directory.GetFiles("*.*", SearchOption.AllDirectories).ToArray());
files.AddRange(directory.GetFiles("*.*", SearchOption.TopDirectoryOnly).ToArray());
}
foreach (var file in files)
{

View File

@@ -25,7 +25,6 @@ namespace Mitria_Minecraft_Launcher
public static readonly string ServerLauncherPatchInformationFile = "/launcher.xml";
public static readonly string ServerInformationFile = "/server.xml";
public static readonly string ServerDataPatchInformationFile = "/data.xml";
//public static readonly string BaseArgument = @"-XX:+UseG1GC -Xmx8G -Xms8G -Dsun.rmi.dgc.server.gcInterval=2147483646 -XX:+UnlockExperimentalVMOptions -XX:G1NewSizePercent=20 -XX:G1ReservePercent=20 -XX:MaxGCPauseMillis=50 -XX:G1HeapRegionSize=32M";
public static void LoadUserLauncherConfig()
{

View File

@@ -1,6 +1,8 @@
using CommonLibrary;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
namespace Mitria_Minecraft_Launcher.Updater
{
@@ -226,6 +228,7 @@ namespace Mitria_Minecraft_Launcher.Updater
}
else
{
// 제거된 폴더 삭제
var resultDirectorys = new List<string>();
foreach (var directory in Settings.UserClientVersion.ComponentDirectorys)
@@ -235,7 +238,6 @@ namespace Mitria_Minecraft_Launcher.Updater
resultDirectorys.Add(directory);
}
}
foreach (var directory in resultDirectorys)
{
var directoryPath = System.IO.Path.GetFullPath(CommonLibrary.Extensions.PathCombineW(Settings.UserLauncherConfig.GameDirectory,Settings.NowProfile.ServerName, directory));
@@ -247,6 +249,29 @@ namespace Mitria_Minecraft_Launcher.Updater
}
}
var reverseDirectorys = dataPatchInformation.ComponentDirectorys;
reverseDirectorys.Reverse();
string gameDirectory = CommonLibrary.Extensions.PathCombineW(Settings.UserLauncherConfig.GameDirectory, Settings.NowProfile.ServerName) + "\\";
foreach (var directory in reverseDirectorys)
{
var directoryPath = System.IO.Path.GetFullPath(CommonLibrary.Extensions.PathCombineW(Settings.UserLauncherConfig.GameDirectory, Settings.NowProfile.ServerName, directory));
if (System.IO.Directory.Exists(directoryPath))
{
var lowDirectorys = System.IO.Directory.GetDirectories(directoryPath);
foreach (var lowDirectory in lowDirectorys)
{
var directoryName = lowDirectory.Replace(gameDirectory, string.Empty);
directoryName = directoryName.Replace("\\", "/");
if (!dataPatchInformation.ComponentDirectorys.Contains(directoryName))
{
System.IO.Directory.Delete(lowDirectory, true);
Log.INFO("[Component] -[D] " + directoryPath);
}
}
}
}
foreach (var directory in dataPatchInformation.ComponentDirectorys)
{
var directoryPath = System.IO.Path.GetFullPath(CommonLibrary.Extensions.PathCombineW(Settings.UserLauncherConfig.GameDirectory, Settings.NowProfile.ServerName, directory));
@@ -258,6 +283,7 @@ namespace Mitria_Minecraft_Launcher.Updater
}
}
var auditFile = new AuditFile();
var localFiles = auditFile.GetLocalFileList(dataPatchInformation.ComponentDirectorys);
var removeFiles = auditFile.GetRemoveFiles(localFiles, dataPatchInformation.ComponentList);
@@ -268,10 +294,12 @@ namespace Mitria_Minecraft_Launcher.Updater
foreach (var fileDetail in removeFiles)
{
var filePath = CommonLibrary.Extensions.PathCombineW(Settings.UserLauncherConfig.GameDirectory,Settings.NowProfile.ServerName, fileDetail.Directory, fileDetail.FileName);
if (System.IO.File.Exists(filePath))
FileInfo fileInfo= new FileInfo(filePath);
fileInfo.IsReadOnly = false;
if (fileInfo.Exists)
{
Log.INFO("[Component] -[F] " + filePath);
System.IO.File.Delete(filePath);
fileInfo.Delete();
}
}
// 디렉토리 삭제