c#如何从子字符串中获取一个值

时间:2013-08-02 08:18:03

标签: c# substring

如何解决这个问题?

我想改变这一点:

C:\文件\队伍\企业\ dev的\来源\系统\推广\目标\ 1.0.1.1 \

改为新值:

value =“1.0.11”;

3 个答案:

答案 0 :(得分:10)

您可以获得相应NameDirectoryInfo

string path = @"C:\files\team\business\dev\Source\systems\extension\destination\1.0.1.1\";
string version = new DirectoryInfo(path).Name;

答案 1 :(得分:1)

替代方法:

var path = @"C:\files\team\business\dev\Source\systems\extension\destination\1.0.1.1\";
var value = Path.GetFileName(path.TrimEnd(new[]{'/','\\'}));
// OUTPUT: 1.0.1.1

这基本上删除了任何最后的目录分隔符,然后将最后一个目录视为文件名,因此它返回最后一个目录。


基于 @JeppeStigNielsen 的评论,这里有一个更好的,独立于平台的替代方案。

var value = Path.GetFileName(Path.GetDirectoryName(path));

如果存在文件名,这将有效。

var value = Path.GetFileName(Path.GetDirectoryName(".../1.0.1.1/somefile.etc"));
// returns 1.0.1.1

答案 2 :(得分:0)

Darin's answer很棒,但作为替代方案;

string s = @"C:\files\team\business\dev\Source\systems\extension\destination\1.0.1.1\";

string[] array = s.Split('\\');
Console.WriteLine(array[array.Length - 2]);

输出将是;

1.0.1.1

这是DEMO