我有一个应用程序需要返回特定路径中的子目录名称。但是,路径可以包含一个变量,并且在路径的末尾,我希望它检查某个文件夹。
我当前的代码类似于
string path = "\\\\" + computerList + "\\C$\\Program Files (x86)\\blah1\\blah2\\";
string searchPattern = "*_*";
DirectoryInfo di = new DirectoryInfo(path);
DirectoryInfo[] directories =
di.GetDirectories(searchPattern, SearchOption.AllDirectories);
其次是
foreach (DirectoryInfo dir in directories)
{
versionInformation.Add(computerList+" "+dir.Parent.Parent.Parent+" "+dir.Parent + " " + dir.Name);
}
我想要它做的是从目录搜索中获取结果 - 然后添加\\working\\products\\
并遍历该完整列表/路径。
所以 - 简而言之 - 我希望 versionInformation 列表最终成为目录信息blah2\
- 我希望它在 blah2 之后找到文件夹(它确实如此)但是我想附加\\working\\products\\
并使用整个路径来完成它在寻找*_*
。
编辑 我刚刚意识到我可能以错误的方式解决了这个问题 - 看来我当前的代码确实有效 - 但是当它列出目录名称时,出于某种原因,它出现了错误......
foreach (DirectoryInfo dir in directories)
{
//DirectoryInfo threeLevelsUp = dir.Parent.Parent.Parent;
versionInformation.Add(computerList+" "+dir.Parent.Parent.Parent+" "+dir.Parent + " " + dir.Name);
//Console.WriteLine(dir.Parent + " " + dir.Name);
}
var beautifyList = string.Join(Environment.NewLine, versionInformation);
MessageBox.Show(beautifyList);
ICanBeDifferent 的第一次迭代(使用下面的文件夹作为示例)将导致找到的第一个项目被标记为“ICanBeDifferent”,但第二个结果(对于在 ICanBeDifferent 下找到的内容)将返回 FunTimes 作为 parent.parent.parent。
这可能是什么原因造成的?!示例文件夹 C:\Program Files (x86)\LLL\Funtimes\ICanBeDifferent\Working\Products\Superman\2015_2_0_7
C:\Program Files (x86)\LLL\Funtimes\ICanBeDifferent\Working\Products\Office\2015_2_2_43
C:\Program Files (x86)\LLL\Funtimes\ThisIsWhatChanges\Working\Products\Lanyard\2015_2_0_70