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; + } } }