如何切出路径的一部分?

时间:2013-07-22 08:11:47

标签: c#

我想删除path的一部分但不知道如何。 要获得path,我使用以下代码:

String path = System.IO.Path.GetDirectoryName(fullyQualifiedName);

(path =“Y:\ Test \ Project \ bin \ Debug”)

现在我需要第一部分没有 “\ bin \ Debug”

如何从当前路径中删除此部分?

5 个答案:

答案 0 :(得分:14)

如果您知道,您不需要“\ bin \ Debug”,则可以使用replace:

path = path.Replace("\bin\Debug", "");

path = path.Remove(path.IndexOf("\bin\Debug"));

如果您知道,您不需要所有内容,请在第二个\之后使用此内容:

path = path.Remove(path.LastIndexOfAny(new char[] { '\\' }, path.LastIndexOf('\\') - 1));

最后,你可以Take这么多部分,你想要多少这样的部分:

path = String.Join(@"\", path.Split('\\').Take(3));

Skip这么多部分,你需要多少部分:

path = String.Join(@"\", path.Split('\\').Reverse().Skip(2).Reverse());

答案 1 :(得分:7)

您可以使用Path类以及Directory.GetParent方法的后续调用:

String dir = Path.GetDirectoryName(fullyQualifiedName);
string root = Directory.GetParent(dir).FullName;

答案 2 :(得分:2)

你只能在3行内完成。

String path= @"Y:\\Test\\Project\\bin\\Debug";
String[] extract = Regex.Split(path,"bin");  //split it in bin
String main = extract[0].TrimEnd('\\'); //extract[0] is Y:\\Test\\Project\\ ,so exclude \\ here
Console.WriteLine("Main Path: "+main);//get main path

答案 3 :(得分:1)

您可以像这样获取路径的父文件夹的路径:

path = Directory.GetParent(path);

在你的情况下,你必须做两次。

答案 4 :(得分:-1)

path=Y:\Test\Project\bin\Debug
ans = String.Join(@"\", path.Split('\\').Skip(3));

答案是:\bin\Debug
它提供了没有根目录的路径或删除了第一个目录。