0

如何解决这个问题?

我想改变这个:

C:\files\team\business\dev\Source\systems\extension\destination\1.0.1.1\

新值:

价值=“1.0.11”;

4

3 回答 3

10

你可以得到Name相应的DirectoryInfo

string path = @"C:\files\team\business\dev\Source\systems\extension\destination\1.0.1.1\";
string version = new DirectoryInfo(path).Name;
于 2013-08-02T08:22:07.040 回答
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
于 2013-08-02T08:41:55.340 回答
0

达林的答案很好,但作为替代方案;

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

于 2013-08-02T08:25:56.203 回答