【发布时间】:2010-12-20 16:58:00
【问题描述】:
我有这段代码可以搜索给定起始目录的文件夹。找到文件夹后,我需要它的父级名称。以下代码有效,但非常难看。我有一个标志“sessionFound”来帮助打破嵌套的 foreach 循环。以下作品。我希望我能对此有所了解,看看我是否能得到一些关于如何使这个不那么冗长和更简洁的建议。
谢谢。
private void SetProjectFolder(string sessionid)
{
//IoC container gives the root directory to begin search.
string[] supportDirs = Directory.GetDirectories(ApplicationContainer.SupportDirectory);
bool sessionFound = false;
foreach (string directory in supportDirs)
{
if (!sessionFound)
{
foreach (string folder in Directory.GetDirectories(directory))
{
if (!sessionFound)
{
foreach (string productSubFolder in Directory.GetDirectories(folder))
{
if (productSubFolder.Contains(sessionid))
{
_productName = Directory.GetParent(productSubFolder).Parent.Name;
sessionFound = true;
break;
}
}
}
else
{
break;
}
}
}
else
{
break;
}
}
}
【问题讨论】: