2011-02-26 132 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) 

只是文件。

相關問題