-1

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

2 回答 2

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);
于 2013-01-08T23:59:41.783 回答
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('\\'));
于 2013-01-09T00:00:38.077 回答