Ay Folks,
我需要遍历路径列表(从Excel工作表中导入为字符串)并找到最常见的路径的第一部分(D:\ Data \ NeededFolder)。
澄清:
arrListOfPaths{
"D:\Data\NeededFolder\X\XX\File.file",
"D:\Data\NeededFolder\X\XY\File.file",
"D:\Data\NeededFolder\Y\File.file",
"D:\Data\NeededFolder\Z\XZ\XY\File.file"
}
因此,我不知道路径有多长(文件夹层次结构的深度),但我知道我所有路径的某些部分在任何地方都是相同的,但不是哪一个。
感谢您的帮助:)
编辑://已解决
因此@Serge Wautier将我的答案联系起来,而不是我希望的那个,我可以称之为一天:) 代码:
public static string FindCommonPath ( string Separator, List<string> Paths )
{
string CommonPath = String.Empty;
List<string> SeparatedPath = Paths
.First ( str => str.Length == Paths.Max ( st2 => st2.Length ) )
.Split ( new string[ ] { Separator }, StringSplitOptions.RemoveEmptyEntries )
.ToList ( );
foreach ( string PathSegment in SeparatedPath.AsEnumerable ( ) )
{
if ( CommonPath.Length == 0 && Paths.All ( str => str.StartsWith ( PathSegment ) ) )
{
CommonPath = PathSegment;
}
else if ( Paths.All ( str => str.StartsWith ( CommonPath + Separator + PathSegment ) ) )
{
CommonPath += Separator + PathSegment;
}
else
{
break;
}
}
return CommonPath;
}