簡體   English   中英

如何切出路徑的一部分?

[英]How to cut out a part of a path?

我想切出path的一部分,但不知道如何。 要獲取path ,我使用以下代碼:

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

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

現在我需要沒有 “\\ bin \\ Debug”的第一部分。

如何從當前路徑中刪除此部分?

如果你知道,你不需要“\\ 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());

您可以使用Path類以及Directory.GetParent方法的后續調用:

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

你只能在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

您可以像這樣獲取路徑的父文件夾的路徑:

path = Directory.GetParent(path);

在你的情況下,你必須做兩次。

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

答案是: \\bin\\Debug
它提供沒有根目錄的路徑或刪除第一個目錄。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM