[PT Run][Folder]Support for paths with / (#18520)

This commit is contained in:
Davide Giacometti
2022-06-02 11:44:52 +02:00
committed by GitHub
parent 465df35d27
commit 6f306e1259
3 changed files with 5 additions and 2 deletions

View File

@@ -52,6 +52,7 @@ namespace Microsoft.Plugin.Folder.UnitTests
[DataRow(@"c:\not-exist", 2, 1, false, DisplayName = "Folder not exist, return root")]
[DataRow(@"c:\not-exist\not-exist2", 0, 0, false, DisplayName = "Folder not exist, return root")]
[DataRow(@"c:\bla.t", 2, 1, false, DisplayName = "Partial match file")]
[DataRow(@"c:/bla.t", 2, 1, false, DisplayName = "Partial match file with /")]
public void Query_WhenCalled(string search, int folders, int files, bool truncated)
{
const int maxFolderSetting = 3;

View File

@@ -84,7 +84,9 @@ namespace Microsoft.Plugin.Folder.Sources
throw new ArgumentNullException(nameof(search));
}
if (search[0] == '\\' && (search.Length == 1 || search[1] != '\\'))
var validRoots = new char[] { '\\', '/' };
if (validRoots.Contains(search[0]) && (search.Length == 1 || !validRoots.Contains(search[1])))
{
// Absolute path of system drive: \Windows\System32
search = Path.Combine(Path.GetPathRoot(Environment.SystemDirectory), search.Substring(1));

View File

@@ -52,7 +52,7 @@ namespace Microsoft.Plugin.Folder.Sources
{
// if folder doesn't exist, we want to take the last part and use it afterwards to help the user
// find the right folder.
int index = search.LastIndexOf('\\');
int index = search.LastIndexOfAny(new char[] { '\\', '/' });
// No slashes found, so probably not a folder
if (index <= 0 || index >= search.Length - 1)