From c4be361f95ba68bdeb4ca9f5bebe0eb3a9d1941b Mon Sep 17 00:00:00 2001 From: "Namhyeon, Go" Date: Thu, 20 Feb 2025 12:57:53 +0900 Subject: [PATCH] Fix instance data survival time issue The data in the Temp directory has a short retention period, posing a risk of data loss. Therefore, it has been changed to the AppData directory. --- .../WelsonJS.Launcher/InstancesForm.cs | 3 ++- WelsonJS.Toolkit/WelsonJS.Launcher/MainForm.cs | 2 +- WelsonJS.Toolkit/WelsonJS.Launcher/Program.cs | 17 +++++++++++++++++ 3 files changed, 20 insertions(+), 2 deletions(-) diff --git a/WelsonJS.Toolkit/WelsonJS.Launcher/InstancesForm.cs b/WelsonJS.Toolkit/WelsonJS.Launcher/InstancesForm.cs index 8f98cb2..696cdf4 100644 --- a/WelsonJS.Toolkit/WelsonJS.Launcher/InstancesForm.cs +++ b/WelsonJS.Toolkit/WelsonJS.Launcher/InstancesForm.cs @@ -7,7 +7,7 @@ namespace WelsonJS.Launcher { public partial class InstancesForm : Form { - private readonly string instancesRoot = Path.GetTempPath(); + private string instancesRoot; private string entryFileName; private string scriptName; @@ -15,6 +15,7 @@ namespace WelsonJS.Launcher { InitializeComponent(); + instancesRoot = Program.GetAppDataPath(); entryFileName = "bootstrap.bat"; } diff --git a/WelsonJS.Toolkit/WelsonJS.Launcher/MainForm.cs b/WelsonJS.Toolkit/WelsonJS.Launcher/MainForm.cs index fe6f690..32969a4 100644 --- a/WelsonJS.Toolkit/WelsonJS.Launcher/MainForm.cs +++ b/WelsonJS.Toolkit/WelsonJS.Launcher/MainForm.cs @@ -69,7 +69,7 @@ namespace WelsonJS.Launcher private void ExtractAndRun(string filePath) { instanceId = Guid.NewGuid().ToString(); - workingDirectory = Path.Combine(Path.GetTempPath(), instanceId); + workingDirectory = Path.Combine(Program.GetAppDataPath(), instanceId); scriptName = textBox1.Text; Task.Run(() => diff --git a/WelsonJS.Toolkit/WelsonJS.Launcher/Program.cs b/WelsonJS.Toolkit/WelsonJS.Launcher/Program.cs index a962a00..e310b58 100644 --- a/WelsonJS.Toolkit/WelsonJS.Launcher/Program.cs +++ b/WelsonJS.Toolkit/WelsonJS.Launcher/Program.cs @@ -88,5 +88,22 @@ namespace WelsonJS.Launcher return path; } + + public static string GetAppDataPath() + { + string path = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), + "welsonjs" + ); + + Directory.CreateDirectory(path); + + if (!Directory.Exists(path)) + { + throw new IOException("Failed to create directory: " + path); + } + + return path; + } } }