2013-12-11 134 views
0

您好我正在使用GetDirectory獲取我的程序的目錄。有沒有辦法將以下內容分開? AGM \ Program \ Python1 \ bin \ Debugs \是固定的。從字符串中刪除某些單詞

C:\User\zhenhui\Desktop\AGM\Program\Python1\bin\Debug\ 

我想C:\用戶\振輝\桌面\

C:\Users\zhenhui\Downloads\AGM\Program\Python1\bin\Debug\ 

我想C:\ Users \用戶振輝\下載\

C:\AGM\Program\Python1\bin\Debug\ 

我想C:\

D:\AGM\Program\Python1\bin\Debug\ 

我想D:\

E:\AGM\Program\Python1\bin\Debug\ 

我想E:\

+0

你看過正則表達式還是string.Split()? –

+2

您也可以使用string.replace將空字符串替換爲固定字符串。 –

回答

3
directory.substring(0, directory.indexOf("AGM\\Program\\Python1\\bin\\Debugs\")) 
+0

差不多。你想'substring(0,indexOf())'重載。現在你只需返回「AGM \\ etc」。 –

+0

如果'pos!= -1',你可能想做'int pos = directory.IndexOf(...);'後面跟'directory.Substring(...)'。 –

0
string directory = "C:\Users\zhenhui\Downloads\AGM\Program\Python1\bin\Debug\; //your path 
int index = directory.indexOf("AGM"); 

string outString = directory.Substring(0, index); 
0

正如我在我的評論中提到,因爲你正試圖刪除您的路徑的固定部分,你可以使用String.Replace方法。這是一個簡單的控制檯程序來演示,我創建了一個返回修剪值的方法,如果它用於非控制檯應用程序的應用程序中,則需要刪除該靜態操作符。

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      Console.WriteLine(getProgramRootDirectory(@"C:\User\zhenhui\Desktop\AGM\Program\Python1\bin\Debug\")); 
      Console.WriteLine(getProgramRootDirectory(@"C:\Users\zhenhui\Downloads\AGM\Program\Python1\bin\Debug\")); 
      Console.WriteLine(getProgramRootDirectory(@"C:\AGM\Program\Python1\bin\Debug\")); 
      Console.WriteLine(getProgramRootDirectory(@"D:\AGM\Program\Python1\bin\Debug\")); 
      Console.WriteLine(getProgramRootDirectory(@"E:\AGM\Program\Python1\bin\Debug\")); 
      Console.ReadLine(); 

     } 
     static private string getProgramRootDirectory(string path) 
     { 
      return path.Replace(@"AGM\Program\Python1\bin\Debug\", ""); 
     } 
    } 
}