遍历深度不一的路径,为TreeView添加节点的回调函数:
private void ExpendTree(string path, TreeNode tn)
{
string[] dirs = Directory.GetDirectories(path);
TreeNode subNode = new TreeNode();
foreach (string subP in dirs)
{
string fName = Path.GetFileName(subP);
subNode = new TreeNode(fName);
tn.Nodes.Add(subNode);
ExpendTree(subP, subNode);
}
string[] rfaFiles = Directory.GetFiles(path, "*.rfa");
foreach (var rfas in rfaFiles)
{
string rName = Path.GetFileName(rfas);
TreeNode node = new TreeNode(rName);
TreeNodeMember member = new TreeNodeMember(rfas, rName);
node.Tag = member;
tn.Nodes.Add(node);
}
}
public class TreeNodeMember
{
public string FullPath;
public string Name;
public TreeNodeMember(string path, string name)
{
FullPath = path;
Name = name;
}
}