考虑两个路径,一个在解决方案中,另一个在IIS中:
解决方案路径:
IIS路径
是否可以使用Directory
或Server
或其他任何方式获取父目录后的FIRST文件夹名称?
即在上面的给定中,Folder1是父文件夹之后的第一个文件夹。
我可以得到相反的结果,即文件路径中包含的文件夹名称(在本例中为 Folder1a ),我可以迭代它以得到答案:
Path.GetFileName(Path.GetDirectoryName(file));
但问题是,文件夹可以嵌套任意数量:(folder1a \ folder1a1 \ folder1a1a ...)
如何在给定文件路径的父目录后获取第一个文件夹名称?
作为旁白, 如果没有foldername(例如Folder1不存在),答案应输出"" (空)
答案 0 :(得分:2)
使用..
转到上一个目录,例如:
C:\test\..\
相当于:
C:\
使用Directory.GetDirectories
查找子目录。它有一个过载,您也可以传递搜索模式:
string[] GetDirectories(string path, string searchPattern)
是searchPattern 键入:System.String
要匹配路径中子目录名称的搜索字符串。 此参数可以包含有效文字和。的组合 通配符(请参阅备注),但不支持常规 表达式。
答案 1 :(得分:1)
试试这个:
string filename = string.Format("{0}{1}", System.AppDomain.CurrentDomain.BaseDirectory, @"Folder1\Folder1a\the.aspx");
答案 2 :(得分:0)
以下是我尝试过的方法。
由于我只需输出单词后面的第一页,我会迭代Path.GetDirectoryName
和Path.GetFileName
,直到我可以匹配根文件夹。
例如:
baseFoldr = "";
var curFile = Path.GetDirectoryName(file);
string curName = Path.GetFileName(curFile);
while (curName.ToLower() != "RootName")
{
curFile = Path.GetDirectoryName(curFile);
baseFoldr = curName;
curName = Path.GetFileName(curFile);
}
return baseFoldr;
我仍然认为可以有更好的答案,但