using System; using System.Diagnostics; using System.IO; using System.Reflection; namespace Wox.Infrastructure { public static class Constant { public static string DetermineDataDirectory() { string portableDataPath = Path.Combine(ProgramDirectory, "UserData"); if (Directory.Exists(portableDataPath)) { return portableDataPath; } else { return Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), Wox); } } public const string Wox = "Wox"; public const string Plugins = "Plugins"; private static readonly Assembly Assembly = Assembly.GetExecutingAssembly(); public static readonly string ProgramDirectory = Directory.GetParent(Assembly.Location.NonNull()).ToString(); public static readonly string ExecutablePath = Path.Combine(ProgramDirectory, Wox + ".exe"); public static readonly string DataDirectory = DetermineDataDirectory(); public static readonly string PluginsDirectory = Path.Combine(DataDirectory, Plugins); public static readonly string PreinstalledDirectory = Path.Combine(ProgramDirectory, Plugins); public const string Issue = "https://github.com/Wox-launcher/Wox/issues/new"; public static readonly string Version = FileVersionInfo.GetVersionInfo(Assembly.Location.NonNull()).ProductVersion; public static readonly int ThumbnailSize = 64; public static readonly string DefaultIcon = Path.Combine(ProgramDirectory, "Images", "app.png"); public static readonly string ErrorIcon = Path.Combine(ProgramDirectory, "Images", "app_error.png"); public static string PythonPath; public static string EverythingSDKPath; } }