如何切出路径的一部分?

jam*_*gan 5 c#

我想削减一部分,path但不知道如何.为了得到path,我使用这个代码:

String path = System.IO.Path.GetDirectoryName(fullyQualifiedName);
Run Code Online (Sandbox Code Playgroud)

(path ="Y:\ Test\Project\bin\Debug")

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

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

FSo*_*ou1 14

如果你知道,你不需要只需"\ bin\Debug"就可以使用replace:

path = path.Replace("\bin\Debug", "");
Run Code Online (Sandbox Code Playgroud)

要么

path = path.Remove(path.IndexOf("\bin\Debug"));
Run Code Online (Sandbox Code Playgroud)

如果你知道,你不需要一切,一秒钟之后\你可以使用它:

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

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

path = String.Join(@"\", path.Split('\\').Take(3));
Run Code Online (Sandbox Code Playgroud)

Skip许多部分,你需要多少:

path = String.Join(@"\", path.Split('\\').Reverse().Skip(2).Reverse());
Run Code Online (Sandbox Code Playgroud)

  • 我将使用`Directory`类而不是字符串方法. (4认同)
  • @FSoul:`Directory.GetParent`返回一个`FileInfo`对象,如果你想上层的话,它还有一个`Parent`属性.一个`FileInfo`对象有一个`FullName`属性来获取它的路径.希望我的样本有效(无法测试).http://stackoverflow.com/a/17782827/284240切勿对路径使用字符串方法,因为您正在重新发明轮子并且可能容易出错. (3认同)

Tim*_*ter 8

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

String dir = Path.GetDirectoryName(fullyQualifiedName);
string root = Directory.GetParent(dir).FullName;
Run Code Online (Sandbox Code Playgroud)