怎样遍历目录下所有子目录?DirectoryInfo.GetDirectories方法好像只能获取当前目录的子目录,但我想获取子目录中的子目录,这样无限级的

时间:2021-07-01 12:26:00
怎样遍历目录下所有子目录?DirectoryInfo.GetDirectories方法好像只能获取当前目录的子目录,但我想获取子目录中的子目录,这样无限级的遍历下去,请我该怎么作?

5 个解决方案

#1


递归三

#2


protected void treeView1_BeforeExpand(object sender,System.Windows.Form.TreeViewCancelEventArg e)
{
String fullPath;
if(e.Node.Equals(treeView1.Nodes[0]))
{ fullPath="";}
else fullPath=e.Node.Text+"\\";
TreeNode tempNode =e.Node;
while(tempNode.Parent!=null&&!tempNode.Parent.Equals(treeView1.Node[0]))
{fullPath=tempNode.Parent.Text+"\\"+fullPath;
 tempNode=tempNode.Parent;
}
fullPath=treeView1.Node[0].Text+fullPath;
for(int i=0;i<e.Node.Nodes.Count;i++)
{String[] dirs=null;
try
{dirs=Directory.GetDirectories(fullPath+e.Node.Nodes[i].Text);
}
catch(Exception ex)
{....}
}

#3


给分阿
我都看不下去了
人家写的很详细的

#4


一个简单的逻辑如下,可以根据自己的要求更改。请指正。

private void mydir(string dir)
{
  foreach(string d in System.IO.Directory.Getfiles(dir))
  {
     displayfile(d);  // whatever function you like;
  }
  
  foreach(string m in System.IO.Directory.GetDirectories(dir))
  {
     displaydir(m);   // whatever
     mydir(m);
  }
}

#5


hehe,马上给分了,昨天休息日,真不好意思了。

#1


递归三

#2


protected void treeView1_BeforeExpand(object sender,System.Windows.Form.TreeViewCancelEventArg e)
{
String fullPath;
if(e.Node.Equals(treeView1.Nodes[0]))
{ fullPath="";}
else fullPath=e.Node.Text+"\\";
TreeNode tempNode =e.Node;
while(tempNode.Parent!=null&&!tempNode.Parent.Equals(treeView1.Node[0]))
{fullPath=tempNode.Parent.Text+"\\"+fullPath;
 tempNode=tempNode.Parent;
}
fullPath=treeView1.Node[0].Text+fullPath;
for(int i=0;i<e.Node.Nodes.Count;i++)
{String[] dirs=null;
try
{dirs=Directory.GetDirectories(fullPath+e.Node.Nodes[i].Text);
}
catch(Exception ex)
{....}
}

#3


给分阿
我都看不下去了
人家写的很详细的

#4


一个简单的逻辑如下,可以根据自己的要求更改。请指正。

private void mydir(string dir)
{
  foreach(string d in System.IO.Directory.Getfiles(dir))
  {
     displayfile(d);  // whatever function you like;
  }
  
  foreach(string m in System.IO.Directory.GetDirectories(dir))
  {
     displaydir(m);   // whatever
     mydir(m);
  }
}

#5


hehe,马上给分了,昨天休息日,真不好意思了。