从字符串向前删除字符串

时间:2015-03-13 11:31:34

标签: c# visual-studio-2010

我知道这种类型的问题已被多次询问,但我似乎无法做到正确。我有一个路径C:\ Users \ User1 \ Desktop \ Tutorial Walkthrough \ WindowsFormsApplication1 \ WindowsFormsApplication1 \ bin \ Debug。知道我怎么能删除子串\ bin以后?目前我已经有了以下代码

string DirDebug = System.IO.Path.GetFullPath(".\\");
        int i = DirDebug.IndexOf("\bin");
        DirDebug = DirDebug.Remove(i);
        MessageBox.Show(DirDebug)

但它没有显示我想要的东西。任何想法我怎么能实现C:\ Users \ User1 \ Desktop \ Tutorial Walkthrough \ WindowsFormsApplication1 \ WindowsFormsApplication1?任何帮助将不胜感激,谢谢你。

2 个答案:

答案 0 :(得分:2)

您可以使用DirectoryInfo class

string path= @"C:\Users\User1\Desktop\Tutorial Walkthrough\WindowsFormsApplication1\WindowsFormsApplication1\bin\Debug";
string rootDir = new DirectoryInfo(path).Parent.Parent.FullName;

结果是:

C:\Users\User1\Desktop\Tutorial Walkthrough\WindowsFormsApplication1\WindowsFormsApplication1

顺便说一句,如果您想为当前应用程序获取该路径,可以使用Directory.GetCurrentDirectory

string rootDir = new DirectoryInfo(Directory.GetCurrentDirectory()).Parent.Parent.FullName;

为了完整起见,如果我想要一般的字符串方法,你可以使用它:

string[] token = path.Split(Path.DirectorySeparatorChar);
var allButTwoLast = token.Take(token.Length - 2);
string result = string.Join(Path.DirectorySeparatorChar.ToString(), allButTwoLast);

答案 1 :(得分:0)

好的,抱歉这个混乱。我有一个路径C:\ Users \ User1 \ Desktop \ Tutorial Walkthrough \ WindowsFormsApplication1 \ WindowsFormsApplication1 \ bin \ Debug。但是我想从\ bin开始删除子串,Tim Schmelter先生刚解决了我的问题。谢谢!

  

string DirDebug = System.IO.Path.GetFullPath(“。\”);
  string newpath = new DirectoryInfo(DirDebug).Parent.Parent.FullName;               MessageBox.Show(NEWPATH);

以上是解决方案