add open containing folder to file results

This commit is contained in:
Jeremy Wu 2020-06-30 08:15:10 +10:00
parent 90b7559d32
commit bd64512643
4 changed files with 22 additions and 2 deletions

View file

@ -8,6 +8,9 @@ namespace Flow.Launcher.Plugin.SharedCommands
public static class FilesFolders
{
private const string FileExplorerProgramName = "explorer";
private const string FileExplorerProgramEXE = "explorer.exe";
public static void Copy(this string sourcePath, string targetPath)
{
// Get the subdirectories for the specified directory.
@ -128,6 +131,11 @@ namespace Flow.Launcher.Plugin.SharedCommands
}
}
public static void OpenContainingFolder(string path)
{
Process.Start(FileExplorerProgramEXE, $" /select,\"{path}\"");
}
///<summary>
/// This checks whether a given string is a directory path or network location string.
/// It does not check if location actually exists.

View file

@ -156,7 +156,7 @@ namespace Flow.Launcher.Plugin.Explorer
{
try
{
Process.Start("explorer.exe", $" /select,\"{record.FullPath}\"");
FilesFolders.OpenContainingFolder(record.FullPath);
}
catch (Exception e)
{

View file

@ -18,6 +18,8 @@ namespace Flow.Launcher.Plugin.Explorer.Search
internal const string ToolTipOpenDirectory = "Ctrl + Enter to open the directory";
internal const string ToolTipOpenContainingFolder = "Ctrl + Enter to open the containing folder";
internal const char AllFilesFolderSearchWildcard = '>';
internal const char DirectorySeperator = '\\';

View file

@ -1,6 +1,7 @@
using Flow.Launcher.Infrastructure;
using Flow.Launcher.Plugin.SharedCommands;
using System;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Windows;
@ -105,7 +106,14 @@ namespace Flow.Launcher.Plugin.Explorer.Search
{
try
{
FilesFolders.OpenPath(filePath);
if (c.SpecialKeyState.CtrlPressed)
{
FilesFolders.OpenContainingFolder(filePath);
}
else
{
FilesFolders.OpenPath(filePath);
}
}
catch (Exception ex)
{
@ -114,6 +122,8 @@ namespace Flow.Launcher.Plugin.Explorer.Search
return true;
},
TitleToolTip = Constants.ToolTipOpenContainingFolder,
SubTitleToolTip = Constants.ToolTipOpenContainingFolder,
ContextData = new SearchResult { Type = ResultType.File, FullPath = filePath, ShowIndexState = showIndexState, WindowsIndexed = windowsIndexed }
};
return result;