2011-02-26 129 views
2

我有一个string path = c:\inetpub\wwwrroot\images\pdf\admission.pdf如何从C#中的文件路径获取子字符串?

我用这

path = path.LastIndexOf("\\").ToString(); 
path = path.Substring(path.LastIndexOf("/") + 1); 

我想:

c:\inetpub\wwwrroot\images\pdf 
c:\inetpub\wwwrroot\images\pdf\admission.pdf 

现在我想从这个string path得到admission.pdf我怎么能做到这一点?

+5

您应该仍然使用'IO.Path'函数之一。用'String.Substring'手动执行此操作只是要求麻烦。 – 2011-02-26 13:54:20

回答

9
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 
+0

非常感谢它解决了我的问题。 – safi 2011-02-26 13:50:46

+0

@沙菲:不,它没有。你应该听最高票数的答案。 – Timwi 2011-02-26 17:36:02

+0

@Timwi OP在他的一个评论中特别要求使用Substring的解决方案,这就是为什么我通过Substring回答发布的原因。也许他有一个很好的理由。感谢反对票。 – 2011-02-26 18:33:19

7

System.IO.Path类中有一堆帮助器方法用于从字符串中提取部分路径/文件名。

在这种情况下,System.IO.Path.GetFileName会得到你想要的。

+0

是的,但我想使用子字符串方法,而不是文件路径对象:) – safi 2011-02-26 13:28:34

+0

这是为什么?这个方法为你提供文件名,而不必处理子串并自己计算字符串位置。 – 2011-02-26 13:30:08

+0

,因为我进一步使用这个字符串来重命名一个文件,所以有时候它也可能是一个文件夹名称。 – safi 2011-02-26 13:33:11

2
System.Io.Path.GetFileName(path); 
4

为什么子串?

使用

System.Io.Path.GetDirectoryName(full_filepath) 

得到的文件夹名称,

System.Io.Path.GetFileName(full_filepath) 

只是文件。

相关问题