Opening explorer if the user has types a file path.

This commit is contained in:
ryanbodrug-microsoft
2020-04-22 17:50:38 -07:00
parent 44943feb8b
commit 86f209a302

View File

@@ -173,8 +173,8 @@ namespace Wox.Plugin.Shell
ProcessStartInfo info; ProcessStartInfo info;
if (_settings.Shell == Shell.Cmd) if (_settings.Shell == Shell.Cmd)
{ {
var arguments = _settings.LeaveShellOpen ? $"/k \"{command}\"" : $"/c \"{command}\" & pause"; var arguments = _settings.LeaveShellOpen ? $"/k \"{command}\"" : $"/c \"{command}\" & pause";
info = ShellCommand.SetProcessStartInfo("cmd.exe", workingDirectory, arguments, runAsAdministratorArg); info = ShellCommand.SetProcessStartInfo("cmd.exe", workingDirectory, arguments, runAsAdministratorArg);
} }
else if (_settings.Shell == Shell.Powershell) else if (_settings.Shell == Shell.Powershell)
@@ -193,24 +193,32 @@ namespace Wox.Plugin.Shell
} }
else if (_settings.Shell == Shell.RunCommand) else if (_settings.Shell == Shell.RunCommand)
{ {
var parts = command.Split(new[] { ' ' }, 2); //Open explorer if the path is a file or directory
if (parts.Length == 2) if(Directory.Exists(command) || File.Exists(command))
{
info = ShellCommand.SetProcessStartInfo("explorer.exe", arguments: command, verb: runAsAdministratorArg);
}
else
{ {
var filename = parts[0]; var parts = command.Split(new[] { ' ' }, 2);
if (ExistInPath(filename)) if (parts.Length == 2)
{ {
var arguments = parts[1]; var filename = parts[0];
info = ShellCommand.SetProcessStartInfo(filename, workingDirectory, arguments, runAsAdministratorArg); if (ExistInPath(filename))
{
var arguments = parts[1];
info = ShellCommand.SetProcessStartInfo(filename, workingDirectory, arguments, runAsAdministratorArg);
}
else
{
info = ShellCommand.SetProcessStartInfo(command, verb: runAsAdministratorArg);
}
} }
else else
{ {
info = ShellCommand.SetProcessStartInfo(command, verb: runAsAdministratorArg); info = ShellCommand.SetProcessStartInfo(command, verb: runAsAdministratorArg);
} }
} }
else
{
info = ShellCommand.SetProcessStartInfo(command, verb: runAsAdministratorArg);
}
} }
else else
{ {