2012-09-07 91 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

相关问题