namespace SpacebarDiscordDesktopLauncher; public static class WindowsDiscordClientFinder { public static string? FindDiscord() { Console.WriteLine($"Looking for installed Discord desktop instance..."); var basePath = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); foreach (var discordBranch in new String[] { "", "PTB", "Canary", "Development" }) { if (Path.Exists(Path.Combine(basePath, "Discord" + discordBranch))) return Path.Combine(GetLatestAppVersion(Path.Combine(basePath, "Discord" + discordBranch)), discordBranch + ".exe"); } Console.WriteLine("Could not find Discord! Do you have the normal Discord client installed?"); Console.ReadLine(); return null; } private static string GetLatestAppVersion(string basePath) { var dirs = Directory.GetDirectories(basePath); var newestDir = ""; var newestDirDate = DateTime.MinValue; foreach (var dir in dirs) { var di = new DirectoryInfo(dir); if (!di.Name.StartsWith("app", StringComparison.InvariantCultureIgnoreCase)) continue; if (di.CreationTimeUtc <= newestDirDate) continue; newestDirDate = di.CreationTimeUtc; newestDir = di.FullName; } return newestDir; } }