在C#中取一个字符串的最后一个子串

时间:2014-07-24 04:29:13

标签: c# .net

我有一个字符串

 "\uploads\test1\test2.file"

获得“test2.file”的方法是什么?

我的想法是获取“\”的最后一个索引然后执行string.substring(“\”的最后一个索引)命令吗?

是否有一种方法只接受最后一个“\”之后的单词?

5 个答案:

答案 0 :(得分:5)

Path.GetFileName(path);命名空间中使用方法System.IO,它比执行字符串操作更优雅。

答案 1 :(得分:4)

您可以使用LINQ:

var path = @"\uploads\test1\test2.file";

var file = path.Split('\\').Last();

如果您担心路径可能是null或其他原因,您可能需要验证输入。

答案 2 :(得分:2)

你可以这样做:

string path = "c:\\inetpub\\wwwrroot\\images\\pdf\\admission.pdf";

string folder = path.Substring(0,path.LastIndexOf(("\\")));
            // this should be "c:\inetpub\wwwrroot\images\pdf"

var fileName = path.Substring(path.LastIndexOf(("\\"))+1);
            // this should be admin.pdf

有关详情,请查看此处How do I get the last part of this filepath?

希望它有所帮助!

答案 3 :(得分:0)

您可以使用Split方法:

 string myString = "\uploads\test1\test2.file";
 string[] words = myString.Split("\");

 //And take the last element:
 var file = words[words.lenght-1];

答案 4 :(得分:0)

使用linq:

"\uploads\test1\test2.file".Split('\\').Last();

或者你可以在没有linq的情况下完成:

string[] parts = "\uploads\test1\test2.file".Split('\\');
last_part=parts[parts.length-1]