7

我想剪掉 a 的一部分,path但不知道怎么做。要获得path,我使用以下代码:

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

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

现在我需要没有 "\bin\Debug"的第一部分。

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

4

4 回答 4

17

如果您知道,您不仅需要“\bin\Debug”,还可以使用替换:

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());
于 2013-07-22T08:14:11.107 回答
8

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

String dir = Path.GetDirectoryName(fullyQualifiedName);
string root = Directory.GetParent(dir).FullName;
于 2013-07-22T08:19:57.343 回答
3

您只需 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
于 2013-07-22T08:18:19.053 回答
1

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

path = Directory.GetParent(path);

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

于 2013-07-22T08:18:32.643 回答