当前位置: 首页 > 编程语言 > C#

使用文件系统目录结构填充TreeView分享

时间:2023-04-11 01:14:03 C#

使用文件系统目录结构填充TreeView我是这里节点的新手..:)我想出了这个算法,但它只显示了父节点列表..像这样..aa.txtbccmnbop等...我希望下一个A节点将被放入前一个节点内的一个节点中..所以它会像这样..aa.txtbopcmn等...我有一些想法但我可以用代码实现它..:)任何请帮助..privatevoidListDirectory(TreeViewtreeView,Stringpath){Stackstack=newStack();TreeNodeDirFilesCollection=newTreeNode();stack.Push(路径);while(stack.Count>0){stringdir=stack.流行音乐();尝试{ListparentDir=newList();parentDir.AddRange(Directory.GetFiles(dir,"*.*"));parentDir.AddRange(Directory.GetDirectories(dir));DirectoryInfod=newDirectoryInfo(dir);TreeNodeTParent=newTreeNode(d.Name);foreach(StringsinparentDir){FileInfof=newFileInfo(s);TreeNodesubItems=newTreeNode(f.Name);TParent.Nodes.Add(subItems);}DirFilesCollection.Nodes.Add(TParent);foreach(Directory.GetDirectories(dir)中的字符串dn){stack.Push(dn);}}catch{}}动作clearTreeView=()=>treeView.Nodes.Clear();this.Invoke(clearTreeVie瓦);动作showTreeView=()=>treeView.Nodes.Add(DirFilesCollection);这个。调用(showTreeView);}选项#1:递归方法:privatevoidListDirectory(TreeViewtreeView,stringpath){treeView.Nodes.Clear();varrootDirectoryInfo=newDirectoryInfo(路径);treeView.Nodes.Add(CreateDirectoryNode(rootDirectoryInfo));}privatestaticTreeNodeCreateDirectoryNode(DirectoryInfodirectoryInfo){vardirectoryNode=newTreeNode(directoryInfo.Name);foreach(vardirectoryindirectoryInfo.GetDirectories())directoryNode.Nodes.Add(CreateDirectoryNode(directory));foreach(varfileindirectoryInfo.GetFiles())directoryNode.Nodes.Add(newTreeNode(file.Name));返回目录节点;}options#2:非递归方法:以上是C#学习教程:使用文件系统目录结构填充TreeView共享的所有内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注——privatestaticvoidListDirectory(TreeViewtreeView,stringpath){treeView.Nodes.Clear();varstack=newStack();varrootDirectory=newDirectoryInfo(路径);var节点=新树Node(rootDirectory.Name){Tag=rootDirectory};堆栈。推(节点);while(stack.Count>0){varcurrentNode=stack.Pop();vardirectoryInfo=(DirectoryInfo)currentNode.Tag;foreach(vardirectoryindirectoryInfo.GetDirectories()){varchildDirectoryNode=newTreeNode(directory.Name){Tag=directory};currentNode.Nodes.Add(childDirectoryNode);stack.Push(childDirectoryNode);}foreach(varfileindirectoryInfo.GetFiles())currentNode.Nodes.Add(newTreeNode(file.Name));}treeView.Nodes.Add(节点);}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: