C# 基于GetDirectory的GetDirectory
我有一个应用程序需要返回特定路径中的子目录名称。但是,路径可以包含一个变量,在路径的末尾,我希望它检查某个文件夹 我当前的代码类似于C# 基于GetDirectory的GetDirectory,c#,foreach,directoryinfo,getdirectories,C#,Foreach,Directoryinfo,Getdirectories,我有一个应用程序需要返回特定路径中的子目录名称。但是,路径可以包含一个变量,在路径的末尾,我希望它检查某个文件夹 我当前的代码类似于 string path = "\\\\" + computerList + "\\C$\\Program Files (x86)\\blah1\\blah2\\"; string searchPattern = "*_*"; DirectoryInfo di = new DirectoryInfo(path); DirectoryInfo[] directori
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\\
,并遍历完整的列表/路径
因此,简而言之,我希望版本信息列表最终
目录信息一直到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);
ICANBEDIFERENT的第一次迭代(以下面的文件夹为例)将导致找到的第一个项目被标记为“ICANBEDIFERENT”,但第二个结果(对于在ICANBEDIFERENT下找到的项目)将返回FunTimes作为parent.parent.parent
这是什么原因造成的?!
示例文件夹
C:\ProgramFiles(x86)\LLL\Funtimes\ICanBeDifferent\Working\Products\Superman\2015\u 2\u 0\u 7
C:\Program Files(x86)\LLL\Funtimes\ICanBeDifferent\Working\Products\Office\2015\u 2\u 43
C:\Program Files(x86)\LLL\Funtimes\this is whatchanges\Working\Products\Lanyard\2015\u 2\u 0\u 70对我来说,你似乎想要这个方法,并像这样使用它
string resultDir = Path.Combine(dir, "..\\working\\products");
如果dir
是字符串或
string resultDir = Path.Combine(dir.FullName, "..\\working\\products");
如果
dir
是DirectoryInfo.您能给出一些文件夹的示例以使您的问题更容易理解吗?取决于启动目录SearchOption。所有目录都会给您带来错误。更好的方法是编写递归函数,使用try-catch一次遍历一个dir