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)的回答,因为我只是将其更改为不递归。
您可以使用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)