diff --git a/src/UniGetUI.Core.Data/CoreData.cs b/src/UniGetUI.Core.Data/CoreData.cs
index b015d6fd2..2307f6265 100644
--- a/src/UniGetUI.Core.Data/CoreData.cs
+++ b/src/UniGetUI.Core.Data/CoreData.cs
@@ -1,4 +1,4 @@
-using System.Diagnostics;
+using System.Diagnostics;
using System.Net;
using System.Text.Json;
using System.Text.Json.Serialization.Metadata;
@@ -64,6 +64,20 @@ public static string UniGetUIDataDirectory
}
}
+ ///
+ /// The directory where the user configurations are stored. The directory is automatically created if it does not exist.
+ ///
+ public static string UniGetUIUserConfigurationDirectory
+ {
+ //TODO: add functionality to move old configurations to new location
+ get
+ {
+ string path = Path.Join(UniGetUIDataDirectory, "Configuration");
+ if (!Directory.Exists(path)) Directory.CreateDirectory(path);
+ return path;
+ }
+ }
+
///
/// The directory where the installation options are stored. The directory is automatically created if it does not exist.
///
diff --git a/src/UniGetUI.Core.Settings/SettingsEngine.cs b/src/UniGetUI.Core.Settings/SettingsEngine.cs
index c443600b2..23bacb621 100644
--- a/src/UniGetUI.Core.Settings/SettingsEngine.cs
+++ b/src/UniGetUI.Core.Settings/SettingsEngine.cs
@@ -17,7 +17,7 @@ public static bool Get(string setting, bool invert = false)
}
// Otherwise, load the value from disk and cache that setting
- result = File.Exists(Path.Join(CoreData.UniGetUIDataDirectory, setting));
+ result = File.Exists(Path.Join(CoreData.UniGetUIUserConfigurationDirectory, setting));
booleanSettings[setting] = result;
return result ^ invert;
}
@@ -30,17 +30,17 @@ public static void Set(string setting, bool value)
booleanSettings[setting] = value;
// Update changes on disk if applicable
- if (value && !File.Exists(Path.Join(CoreData.UniGetUIDataDirectory, setting)))
+ if (value && !File.Exists(Path.Join(CoreData.UniGetUIUserConfigurationDirectory, setting)))
{
- File.WriteAllText(Path.Join(CoreData.UniGetUIDataDirectory, setting), "");
+ File.WriteAllText(Path.Join(CoreData.UniGetUIUserConfigurationDirectory, setting), "");
}
else if (!value)
{
valueSettings[setting] = "";
- if (File.Exists(Path.Join(CoreData.UniGetUIDataDirectory, setting)))
+ if (File.Exists(Path.Join(CoreData.UniGetUIUserConfigurationDirectory, setting)))
{
- File.Delete(Path.Join(CoreData.UniGetUIDataDirectory, setting));
+ File.Delete(Path.Join(CoreData.UniGetUIUserConfigurationDirectory, setting));
}
}
@@ -61,9 +61,9 @@ public static string GetValue(string setting)
// Otherwise, load the setting from disk and cache that setting
value = "";
- if (File.Exists(Path.Join(CoreData.UniGetUIDataDirectory, setting)))
+ if (File.Exists(Path.Join(CoreData.UniGetUIUserConfigurationDirectory, setting)))
{
- value = File.ReadAllText(Path.Join(CoreData.UniGetUIDataDirectory, setting));
+ value = File.ReadAllText(Path.Join(CoreData.UniGetUIUserConfigurationDirectory, setting));
}
valueSettings[setting] = value;
@@ -83,7 +83,7 @@ public static void SetValue(string setting, string value)
}
else
{
- File.WriteAllText(Path.Join(CoreData.UniGetUIDataDirectory, setting), value);
+ File.WriteAllText(Path.Join(CoreData.UniGetUIUserConfigurationDirectory, setting), value);
booleanSettings[setting] = true;
valueSettings[setting] = value;
}
diff --git a/src/UniGetUI.Core.Settings/SettingsEngine_Dictionaries.cs b/src/UniGetUI.Core.Settings/SettingsEngine_Dictionaries.cs
index 0be02e2ed..a2ac0f978 100644
--- a/src/UniGetUI.Core.Settings/SettingsEngine_Dictionaries.cs
+++ b/src/UniGetUI.Core.Settings/SettingsEngine_Dictionaries.cs
@@ -35,9 +35,9 @@ public static partial class Settings
// Otherwise, load the setting from disk and cache that setting
Dictionary value = [];
- if (File.Exists(Path.Join(CoreData.UniGetUIDataDirectory, $"{setting}.json")))
+ if (File.Exists(Path.Join(CoreData.UniGetUIUserConfigurationDirectory, $"{setting}.json")))
{
- string result = File.ReadAllText(Path.Join(CoreData.UniGetUIDataDirectory, $"{setting}.json"));
+ string result = File.ReadAllText(Path.Join(CoreData.UniGetUIUserConfigurationDirectory, $"{setting}.json"));
try
{
if (result != "")
@@ -85,7 +85,7 @@ public static void SetDictionary(string setting, Dictionary value)
kvp => (object?)kvp.Value
);
- var file = Path.Join(CoreData.UniGetUIDataDirectory, $"{setting}.json");
+ var file = Path.Join(CoreData.UniGetUIUserConfigurationDirectory, $"{setting}.json");
try
{
if (value.Count != 0) File.WriteAllText(file, JsonSerializer.Serialize(value));
diff --git a/src/UniGetUI.Core.Settings/SettingsEngine_Lists.cs b/src/UniGetUI.Core.Settings/SettingsEngine_Lists.cs
index 97d134b2d..4ecefbec1 100644
--- a/src/UniGetUI.Core.Settings/SettingsEngine_Lists.cs
+++ b/src/UniGetUI.Core.Settings/SettingsEngine_Lists.cs
@@ -31,7 +31,7 @@ public static partial class Settings
// Otherwise, load the setting from disk and cache that setting
List value = [];
- var file = Path.Join(CoreData.UniGetUIDataDirectory, $"{setting}.json");
+ var file = Path.Join(CoreData.UniGetUIUserConfigurationDirectory, $"{setting}.json");
if (File.Exists(file))
{
string result = File.ReadAllText(file);
@@ -73,7 +73,7 @@ public static partial class Settings
public static void SetList(string setting, List value)
{
listSettings[setting] = value.Cast