diff --git a/Plugins/Flow.Launcher.Plugin.Explorer/Search/EnvironmentVariables.cs b/Plugins/Flow.Launcher.Plugin.Explorer/Search/EnvironmentVariables.cs index c576d6ee845..6a870f1496f 100644 --- a/Plugins/Flow.Launcher.Plugin.Explorer/Search/EnvironmentVariables.cs +++ b/Plugins/Flow.Launcher.Plugin.Explorer/Search/EnvironmentVariables.cs @@ -22,11 +22,20 @@ internal static Dictionary LoadEnvironmentStringPaths() foreach (DictionaryEntry special in Environment.GetEnvironmentVariables()) { - if (Directory.Exists(special.Value.ToString())) + var path = special.Value.ToString(); + if (Directory.Exists(path)) { + // we add a trailing slash to the path to make sure drive paths become valid absolute paths. + // for example, if %systemdrive% is C: we turn it to C:\ + path = path.TrimEnd(Path.DirectorySeparatorChar) + Path.DirectorySeparatorChar; + + // if we don't have an absolute path, we use Path.GetFullPath to get one. + // for example, if %homepath% is \Users\John we turn it to C:\Users\John + path = Path.IsPathFullyQualified(path) ? path : Path.GetFullPath(path); + // Variables are returned with a mixture of all upper/lower case. // Call ToLower() to make the results look consistent - envStringPaths.Add(special.Key.ToString().ToLower(), special.Value.ToString()); + envStringPaths.Add(special.Key.ToString().ToLower(), path); } } diff --git a/Plugins/Flow.Launcher.Plugin.Explorer/plugin.json b/Plugins/Flow.Launcher.Plugin.Explorer/plugin.json index 6e4074c4021..67d2e731c43 100644 --- a/Plugins/Flow.Launcher.Plugin.Explorer/plugin.json +++ b/Plugins/Flow.Launcher.Plugin.Explorer/plugin.json @@ -7,7 +7,7 @@ "Name": "Explorer", "Description": "Search and manage files and folders. Explorer utilises Windows Index Search", "Author": "Jeremy Wu", - "Version": "1.2.1", + "Version": "1.2.2", "Language": "csharp", "Website": "https://github.com/Flow-Launcher/Flow.Launcher", "ExecuteFileName": "Flow.Launcher.Plugin.Explorer.dll",