某些父目录的C#路径

Ale*_*nyk 3 .net c# system.io.directory

有没有一种简短的方法可以从当前路径获取某些父目录路径。

我有这样一条路:

"c:\\users\\userName\\documents\\visual studio 2013\\Projects\\SolutionName\\ProjectName\\bin\\Debug"
Run Code Online (Sandbox Code Playgroud)

我想获取路径到“ SolutionName”目录,像这样

"c:\\users\\userName\\documents\\visual studio 2013\\Projects\\SolutionName"
Run Code Online (Sandbox Code Playgroud)

我需要它,因为我将一些数据存储在文件夹中

"c:\\users\\userName\\documents\\visual studio 2013\\Projects\\SolutionName\\DataFolder"
Run Code Online (Sandbox Code Playgroud)

我需要从解决方案中的不同项目中访问它。

谢谢大家,我做了什么

public static string GetParent( string parentName,string FileName)
    {
        var dir = new DirectoryInfo(System.IO.Directory.GetCurrentDirectory());

        while (dir.Parent.Name != parentName)
        {
            dir = dir.Parent;
        }
        return dir.Parent.FullName+"\\Data\\"+FileName;
    }
Run Code Online (Sandbox Code Playgroud)

我接受了卡勒姆·布拉德伯里(Callum Bradbury)的回答,因为我只是将其更改为不递归。

Cal*_*ury 5

您可以使用DirectoryInfo类通过一些迭代函数相对轻松地完成此操作。

    public string GetParent(string path, string parentName)
    {
        var dir = new DirectoryInfo(path);

        if (dir.Parent == null)
        {
            return null;
        }

        if (dir.Parent.Name == parentName)
        {
            return dir.Parent.FullName;
        }

        return this.GetParent(dir.Parent.FullName, parentName);
    }
Run Code Online (Sandbox Code Playgroud)