Merge pull request #144 from JohnTheGr8/fix_env_var_paths

plugin/explorer: ensure environment variable paths are absolute
This commit is contained in:
Jeremy Wu 2020-08-25 15:06:13 +10:00 committed by GitHub
commit ef39b9db23
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 3 deletions

View file

@ -22,11 +22,20 @@ namespace Flow.Launcher.Plugin.Explorer.Search
foreach (DictionaryEntry special in Environment.GetEnvironmentVariables()) 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. // Variables are returned with a mixture of all upper/lower case.
// Call ToLower() to make the results look consistent // Call ToLower() to make the results look consistent
envStringPaths.Add(special.Key.ToString().ToLower(), special.Value.ToString()); envStringPaths.Add(special.Key.ToString().ToLower(), path);
} }
} }

View file

@ -7,7 +7,7 @@
"Name": "Explorer", "Name": "Explorer",
"Description": "Search and manage files and folders. Explorer utilises Windows Index Search", "Description": "Search and manage files and folders. Explorer utilises Windows Index Search",
"Author": "Jeremy Wu", "Author": "Jeremy Wu",
"Version": "1.2.1", "Version": "1.2.2",
"Language": "csharp", "Language": "csharp",
"Website": "https://github.com/Flow-Launcher/Flow.Launcher", "Website": "https://github.com/Flow-Launcher/Flow.Launcher",
"ExecuteFileName": "Flow.Launcher.Plugin.Explorer.dll", "ExecuteFileName": "Flow.Launcher.Plugin.Explorer.dll",