2012-09-07 134 views
1

刪除最後一個部分,我有一個動態生成的字符串作爲/directory/folder/filename.html我怎麼能在一個字符串

如何刪除的最後一部分即/filename.html。

我想我的輸出爲/ directory/folder /。

回答

6

使用Path.GetDirectoryName方法System.IO

string path = "/directory/folder/filename.html"; 
path = Path.GetDirectoryName(path); 

可以路徑分隔符更改爲系統默認。如果您想保留斜線,使用替代以下:

path = path.Substring(0, path.LastIndexOf('/')); 
+0

這是一個動態的路徑,我想刪除最後的分割 – pavan

+0

@pavan這是上面的代碼做什麼。如果您需要結束斜線,請使用'path.LastIndexOf('/')+ 1'或將'/'(或'Path.DirectorySeparatorChar')追加到結果中。 – Adam

+0

這很好,非常感謝。它工作非常好! – pavan

2

如果只想路徑部分使用

string result = Path.GetDirectoryName(inputName); 

如果你想要的文件名,而不是路徑

string result = Path.GetFileName(inputName); 

我也看到你使用正斜槓。上述方法將在輸出給一個文件夾分隔符正確的爲您的操作系統(向前或向後斜槓)

3

您可以使用substring而不使用IO類/方法

string str = "/directory/folder/filename.html"; 
int endIndex = str.LastIndexOf("/"); 
endIndex = endIndex !=-1 ? endIndex : 0; 
result = str.Substring(0,endIndex); 
+0

請注意,如果字符串中不存在「/」,這會中斷。 – Servy

+0

我認爲根據OP – Adil

+0

並不需要,僅僅因爲它適用於提供的單個示例並不意味着它將適用於他擁有的每個實際值。 – Servy

相關問題