我有这样的文件路径:
level1\level2\level3\level4\level5\text.txt
我想使用来自level3
的路径。像这样:
level3\level4\level5\text.txt
.Net中有任何功能对我有用吗?
答案 0 :(得分:2)
使用.Substring(startingIndex)
的最简单方法。
string path = @"level1\level2\level3\level4\level5\text.txt";
string subPath = path.Substring(path.IndexOf("level3"));
输出:
level3\level4\level5\text.txt
要支持所有级别并使其更通用,您可以尝试类似的
//More general
int index = path.IndexOf('\\');
while (index >= 0) {
Console.WriteLine(path.Substring(index));
index = path.IndexOf('\\', index + 1);
//Here on certain level you can use "break;" to get expected string
}
输出:
\level2\level3\level4\level5\text.txt
\level3\level4\level5\text.txt
\level4\level5\text.txt
\level5\text.txt
\text.txt
POC:.netFiddle
答案 1 :(得分:1)
尝试一下:
string path = @"level1\level2\level3\level4\level5\text.txt";
int index = path.IndexOf('\\', path.IndexOf('\\') + 1);
string newPath = path.Substring(index + 1);
或创建一个方法:
private static string RemoveFirstTwoLevels(string path)
{
//error handling omitted...
int index = path.IndexOf('\\', path.IndexOf('\\') + 1);
return path.Substring(index + 1);
}
答案 2 :(得分:0)
使用删除
string path = @"level1\level2\level3\level4\level5\text.txt";
string subPath = path.Remove( 0, path.IndexOf( "level3" ) );
使用子字符串
string path = @"level1\level2\level3\level4\level5\text.txt";
string subPath = path.Substring( path.IndexOf( "level3" ) );
以上两个示例都将输出:
level3\level4\level5\text.txt