我知道这种类型的问题已被多次询问,但我似乎无法做到正确。我有一个路径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?任何帮助将不胜感激,谢谢你。
答案 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)
string DirDebug = System.IO.Path.GetFullPath(“。\”);
string newpath = new DirectoryInfo(DirDebug).Parent.Parent.FullName; MessageBox.Show(NEWPATH);
以上是解决方案