步骤一:首先设置根节点,并用SetTreeViewNode方法来填充子节点。
private void Form1_Load(object sender, EventArgs e) { string path = @"D:\Works"; TreeNode node = this.treeView1.Nodes.Add(path.Substring(path.LastIndexOf('\\') + 1)); SetTreeViewNode(path, node); }
步骤二:遍历所给路径目录,分别获取它们的文件和文件夹,并加入TreeView控件中。
private void SetTreeViewNode(string path,TreeNode node) { var directories = Directory.GetDirectories(path); if (directories != null) { foreach (var item in directories) { var childrenNode = node.Nodes.Add(item.Substring(item.LastIndexOf('\\')+1)); SetTreeViewNode(item, childrenNode); } } var files = Directory.GetFiles(path); if (files != null) { foreach (var file in files) { node.Nodes.Add(file.Substring(file.LastIndexOf('\\') + 1)); } } }
效果如下:
此算法不是最优解,各位访客可加入下面qq群,进行讨论: