Refactor program structure by adding Archives and Functions classes; introduce Varibles struct for shared state management

This commit is contained in:
Kq
2026-07-03 03:34:43 +02:00
parent 719b73cfa0
commit f01c7d08f7
4 changed files with 331 additions and 260 deletions
+88
View File
@@ -0,0 +1,88 @@
using System.Diagnostics;
namespace OnlineFixImporter
{
public class Archives
{
public static void unrarfix(string fixfile)
{
Console.WriteLine($"Current directory: {Directory.GetCurrentDirectory()}");
string mainfile = Directory.GetFiles(Directory.GetCurrentDirectory(), "*.rar")[0];
// string fixfile = Directory.GetFiles(Directory.GetCurrentDirectory() + "/Fix Repair", "*.rar")[0];
Console.WriteLine($"Main file: {mainfile}");
unrar(mainfile, Directory.GetCurrentDirectory() + "/game");
unrar(fixfile, Directory.GetCurrentDirectory() + "/fix");
string gamefolder = Directory.GetDirectories(Directory.GetCurrentDirectory() + "/game")[0];
Console.WriteLine($"Game folder: {gamefolder}");
string fixfolder = Directory.GetCurrentDirectory() + "/fix";
Console.WriteLine($"Fix folder: {fixfolder}");
Functions.MoveDirectoryOverwrite(fixfolder, gamefolder);
string dirtomove = Directory.GetDirectories(Directory.GetCurrentDirectory() + "/game")[0];
Varibles.gamename = Path.GetFileName(dirtomove);
Console.WriteLine($"Game name: {Varibles.gamename}");
Varibles.gamepath = Path.Combine(Varibles.tarGamePath, Varibles.gamename);
foreach (var file in Directory.GetFiles(dirtomove))
{
Console.WriteLine($"File: {file}");
}
Directory.Move(dirtomove, Varibles.gamepath);
// delete old folders and rars
Directory.Delete(Directory.GetCurrentDirectory() + "/game", true);
Directory.Delete(Directory.GetCurrentDirectory() + "/Fix Repair", true);
File.Delete(mainfile);
foreach (var file in Directory.GetFiles(Varibles.gamepath, "*.exe"))
{
if (!file.Contains("Unity"))
{
Varibles.gameexe = file;
break;
}
}
}
static void unrar(string archivePath, string outputDir)
{
var sevenZipPath = "7z";
// var archivePath = @"C:\temp\archive.rar";
// var outputDir = @"\out";
var password = "online-fix.me";
var psi = new ProcessStartInfo
{
FileName = sevenZipPath,
Arguments = $"x \"{archivePath}\" -o\"{outputDir}\" -p\"{password}\" -y",
UseShellExecute = false,
RedirectStandardOutput = true,
RedirectStandardError = true,
CreateNoWindow = true
};
using var process = Process.Start(psi);
string stdout = process!.StandardOutput.ReadToEnd();
string stderr = process.StandardError.ReadToEnd();
process.WaitForExit();
Console.WriteLine(stdout);
Console.WriteLine(stderr);
Console.WriteLine($"Exit code: {process.ExitCode}");
}
}
}