如何获取给定字符串后的子字符串

时间:2016-05-24 07:34:28

标签: c#

我是C#的新手并且正在努力解决字符串问题。我有一个这样的字符串:

C:\User\Max\Pictures\

我有多个文件路径:

C:\User\Max\Pictures\car.jpg
C:\User\Max\Pictures\trains\train.jpg

如何从这些文件路径中删除基本路径以获取:

car.jpg
trains\train.jpg

这样的事情失败了:

string path = "C:\\User\\Max\\Pictures\\";
string file = "C:\\User\\Max\\Pictures\\trains\\train.jpg";

string newfile = file.Substring(file.IndexOf(path));

3 个答案:

答案 0 :(得分:4)

您希望在file长度之后获取path的子字符串:

string newfile = file.Substring(path.Length);

请注意,在处理文件路径时,使用Path方法(例如Path.GetFileName())是个好主意(尽管它不适用于" train&#34 ;例子)。

答案 1 :(得分:1)

另一个答案是用空字符串替换你的路径:

line[1]

答案 2 :(得分:0)

有一些特殊的类来处理文件路径

var filePath = new FileInfo("dd");

在filePath.Name中是文件whitout目录的文件名

因此,对于您的场景,您想要剥离基础目录。所以你可以这样做

var filePath = new FileInfo(@"c:\temp\train\test.xml");
var dir = filePath.FullName.Replace(@"c:\temp", String.Empty);