我找到了一个实例,我需要能够拆分给定目录列表/路径的一部分。在这种情况下,我有路径"C:\Program Files(x86)\MyApp\Data"
或“C:\Program Files\MyApp\Data\myfile.txt"
,我想删除\MyApp\Data\
之前的所有内容,以便我可以将其用于将来的处理。
我知道我可以执行类似以下操作来拆分每个目录,我可以从那里重建它,但我希望能够分割不需要的路径信息 - 只保留相关的字符串。
string mypath = @"C:\Program Files(x86)\MyApp\Data";
string[] directories = mypath.Split(Path.DirectorySeparatorChar);
答案 0 :(得分:1)
只需拆分MyApp \ Data并删除第一个条目:
string mypath = @"C:\Program Files(x86)\MyApp\Data";
string[] directories = mypath.Split(new string[] {@"\MyApp\Data"}, StringSplitOptions.RemoveEmptyEntries);
string mySavePath = mypath.Remove(0, directories[0].Length);
Console.WriteLine(mySavePath);
答案 1 :(得分:1)
只需从所需部分开始的位置提取子字符串:
string s1 = @"C:\Program Files(x86)\MyApp\Data";
string s2 = @"\MyApp\Data\";
int index = s1.IndexOf(s2);
if ( index >= 0 )
{
string end = s1.Substring(index);
string beg = s1.Substring(0, index);
}
但请注意,如果您在两个字符串的末尾都有\
符号:
int index = s1.IndexOf(s2.TrimEnd('\\'));