[PT Run][Folder]Support for paths with / (#18520)
This commit is contained in:
Родитель
465df35d27
Коммит
6f306e1259
|
@ -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", 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:\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")]
|
||||||
|
[DataRow(@"c:/bla.t", 2, 1, false, DisplayName = "Partial match file with /")]
|
||||||
public void Query_WhenCalled(string search, int folders, int files, bool truncated)
|
public void Query_WhenCalled(string search, int folders, int files, bool truncated)
|
||||||
{
|
{
|
||||||
const int maxFolderSetting = 3;
|
const int maxFolderSetting = 3;
|
||||||
|
|
|
@ -84,7 +84,9 @@ namespace Microsoft.Plugin.Folder.Sources
|
||||||
throw new ArgumentNullException(nameof(search));
|
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
|
// Absolute path of system drive: \Windows\System32
|
||||||
search = Path.Combine(Path.GetPathRoot(Environment.SystemDirectory), search.Substring(1));
|
search = Path.Combine(Path.GetPathRoot(Environment.SystemDirectory), search.Substring(1));
|
||||||
|
|
|
@ -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
|
// if folder doesn't exist, we want to take the last part and use it afterwards to help the user
|
||||||
// find the right folder.
|
// find the right folder.
|
||||||
int index = search.LastIndexOf('\\');
|
int index = search.LastIndexOfAny(new char[] { '\\', '/' });
|
||||||
|
|
||||||
// No slashes found, so probably not a folder
|
// No slashes found, so probably not a folder
|
||||||
if (index <= 0 || index >= search.Length - 1)
|
if (index <= 0 || index >= search.Length - 1)
|
||||||
|
|
Загрузка…
Ссылка в новой задаче