是否是递归遍历树

2008年10月6日星期一

是否是递归遍历树

//递归遍力树节点
private void GetDir(FileSystemInfo[] myFavDir, TreeNode RootNode)
{//判断是否为空
if (myFavDir == null)
{//抛出异常
throw new ArgumentNullException("myfavdir");
}
//遍立目录
foreach (FileSystemInfo filesysteminfo in myFavDir)
{
//以文件名为名称,创建树节点
TreeNode tn = new TreeNode(filesysteminfo.Name,0,1);
//tn.ImageIndex = 0;
//文件目录
if (filesysteminfo.GetType() == typeof(DirectoryInfo))
{
RootNode.Nodes.Add(tn);
//强制转化为文件目录格式
DirectoryInfo childfile = (DirectoryInfo)filesysteminfo;
//如果是目录,继续遍力递归调用
GetDir(childfile.GetFileSystemInfos(), tn);
}
//文件格式
else if (filesysteminfo.GetType() == typeof(FileInfo))
{
string fitler = ".url";
//过滤功能
if (filesysteminfo.FullName.ToLower().EndsWith(fitler.ToLower()))
{
//以文件名为名称,创建树节点
TreeNode tnchild = new TreeNode(filesysteminfo.Name,2,2);
//保存目录于TAG
tnchild.Tag = filesysteminfo.FullName;
RootNode.Nodes.Add(tnchild);
}
}

}

    0 评论:

    发表评论