如何将目录列表的全部或部分拆分为两个单独的字符串

时间:2013-01-08 23:56:05

标签: c# split directory

我找到了一个实例,我需要能够拆分给定目录列表/路径的一部分。在这种情况下,我有路径"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); 

2 个答案:

答案 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('\\'));