我有一个路径变量,例如'Customer \\ Calls \\ A1 \\ A2 \\ A3 \\ A4'.Irom我想把它分成像
这样的数组'Customer'
'Customer\Calls'
'Customer\Calls\A1'
'Customer\Calls\A1\A2'
'Customer\Calls\A1\A2\A3'
'Customer\Calls\A1\A2\A3\A4'
如果我们这样做
string[] directories = currentFolderPath.Split(Path.DirectorySeparatorChar);
我们将获得一组文件夹,但它不会进入上述结构
任何人都可以建议更好的方法
答案 0 :(得分:2)
获取父目录,直到到达根目录
如果它是绝对路径
this.sidenav.toggle()
如果是相对路径
private static IEnumerable<string> SplitPath(string path){
do{
yield return path;
path=Path.GetDirectoryName(path);
} while(path!=null);
}
答案 1 :(得分:2)
string path = @"Customer\Calls\A1\A2\A3\A4";
var sections = path.Split('\\').ToList();
var result = Enumerable.Range(0, sections.Count)
.Select(index => string.Join(@"\", sections.Take(index + 1)))
.ToList();
//Result:
// Customer
// Customer\Calls
// Customer\Calls\A1
// Customer\Calls\A1\A2
// Customer\Calls\A1\A2\A3
// Customer\Calls\A1\A2\A3\A4
答案 2 :(得分:0)
从您的帖子中发现并不是很明显,但如果您需要对阵列中的每个项目执行某些操作,我可能会采用这种方法:
string path = string.Empty;
"Customer\\Calls\\A1\\A2\\A3\\A4".Split(new Char[] { '\\' }).ToList().ForEach(
part => {
path = Path.Combine(path, part);
// Do stuff!
}
);
答案 3 :(得分:0)
// easy and simple try this
string path = @"Customer\Calls\A1\A2\A3\A4";
string[] pathArr = path.Split('\\');
List<string> list = new List<string>();
for (int i = 0; i < pathArr.Length; i++)
{
string temp = pathArr[i];
if (i > 0)
{
temp = list[i - 1].ToString() + @"\" + temp;
}
list.Add(temp);
}
答案 4 :(得分:0)
stop