2014-03-14 126 views
-1

我有一個字符串=「C:\用戶\桌面\ BIN \數據\等等」如何提取一部分字符串?

我想只提取「C:\用戶\桌面\」的一部分.. 什麼是最簡單的方法得到結果?

+3

輸入危險依據是什麼邏輯?請提供更多信息 – AcidJunkie

回答

1
string s = @"C:\Users\Desktop\bin\data\so on"; 
string result = String.Join("\\",s.Split('\\').Take(3)); 

結果 C:\用戶\桌面

+0

感謝#jyparask – Atif

+0

一兩件事,如何通過字符串中檢查,以打破串每當串創立\ BIN完成相同的任務?它可以切割所有後弦/ bin和結果將再次在同一即「結果C:\用戶\桌面」 – Atif

+0

您可以嘗試s.Substring(0,s.IndexOf(@「\ BIN」)); –

1

採取考慮到有是可能目錄分隔符(您輸入看起來像一個路徑):

String s = "C:\Users\Desktop\bin\data\so on"; 

    String result = String.Join(Path.DirectorySeparatorChar.ToString(), 
           s.Split(Path.DirectorySeparatorChar, 
             Path.AltDirectorySeparatorChar).Take(3)); 

或者,如果你想繼續,直到"/bin""\bin"發現你應該ç焊割TakeTakeWhile

String result = String.Join(Path.DirectorySeparatorChar.ToString(), 
          s.Split(Path.DirectorySeparatorChar, 
            Path.AltDirectorySeparatorChar).TakeWhile(
            x => !String.Equals(x, "bin", StringComparison.OrdinalIgnoreCase))); 

天真soultion爲Substring(@"\bin")可以在這樣的"C:\Windows\MyBins\Bin\SomeStaff"

+0

當字符串找到\ bin時,如何通過檢查字符串來斷開字符串來完成相同的任務?它可以切割所有後弦/ bin和結果將再次在同一即「結果C:\用戶\桌面」 – Atif

+0

@ user3418729:只要改變「拿」到「TakeWhile」 –