我正在尝试将模板文件夹及其子文件夹与现有目录结构进行比较。我试图递归地遍历每个目录中的所有子文件夹。我的代码如下。
public void compareDirectories(DirectoryInfo Templatedir, DirectoryInfo Projectdir)
{
DirectoryInfo[] recursiveTemplatedirs = Templatedir.GetDirectories("*.*");
DirectoryInfo[] recursiveProjectdirs = Projectdir.GetDirectories("*.*");
string recursiveName;
string projectName;
foreach (DirectoryInfo recursiveTemplatedir in recursiveTemplatedirs)
{
recursiveName = recursiveTemplatedir.Name.ToString();
foreach (DirectoryInfo recursiveProjectdir in recursiveProjectdirs)
{
projectName = recursiveProjectdir.Name.ToString();
if (recursiveName == projectName)
{
lstTest.Items.Add("Match " + recursiveName);
}
else lstTest.Items.Add("No Match " + recursiveName);
}
compareDirectories(recursiveTemplatedir, recursiveProjectdir);
}
}
当我尝试运行此命令时,出现错误:recursiveProjectdir 在此上下文中不存在。关于如何让它运行有什么想法吗?
最佳答案
您收到错误,因为 recursiveProjectdir
的范围仅位于 foreach 循环
foreach (DirectoryInfo recursiveTemplatedir in recursiveTemplatedirs)
{
recursiveName = recursiveTemplatedir.Name.ToString();
foreach (DirectoryInfo recursiveProjectdir in recursiveProjectdirs)
{
}
//recursiveProjectdir doesn't exists outside the foreach loop
compareDirectories(recursiveTemplatedir, recursiveProjectdir);
}
关于c# - 比较两个文件夹 - 模板与实际,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8789204/