using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Flow.Launcher.Infrastructure.UserSettings { public static class DataLocation { public const string PortableFolderName = "UserData"; public const string DeletionIndicatorFile = ".dead"; public static string PortableDataPath = Path.Combine(Constant.ProgramDirectory, PortableFolderName); public static string RoamingDataPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), Constant.Flow.Launcher); public static string DataDirectory() { if (PortableDataLocationInUse()) return PortableDataPath; return RoamingDataPath; } public static bool PortableDataLocationInUse() { if (Directory.Exists(PortableDataPath) && !File.Exists(DeletionIndicatorFile)) return true; return false; } public static readonly string PluginsDirectory = Path.Combine(DataDirectory(), Constant.Plugins); } }