TreeView如何显示目录?下面是我的代码DirectoryInfodirectoryInfo=newDirectoryInfo(@"C:UsersShahulDocumentsVisualStudio2010ProjectsTreeViewTreeViewbinFileExplorer");privatevoidForm1_Load(objectsender,EventArgse){if(Directory.Exists("FileExplorer")){try{[]DirectoryInfo=directoryInfo.GetDirectories();foreach(FileInfofileindirectoryInfo.GetFiles()){if(file.Exists){TreeNodenodes=treeView.Nodes[0].Nodes.Add(file.Name);}}if(directories.Length>0){foreach(DirectoryInfodirectoryindirectories){TreeNodenode=treeView.Nodes[0].Nodes.Add(directory.Name);node.ImageIndex=node.SelectedImageIndex=0;foreach(FileInfofileindirectory.GetFiles()){if(file.Exists){TreeNode节点=treeView.Nodes[0].Nodes[node.Index].Nodes.Add(file.Name);}}}}}catch(Exceptionex){MessageBox.Show(ex.Message);}}}当我运行时,我得到一个空白的树状图?无法弄清楚错误是什么?这是我在StackOverflow上的第一篇文章。这应该可以解决您的问题,不过我尝试了WinForm:publicForm1(){InitializeComponent();DirectoryInfodirectoryInfo=newDirectoryInfo(@"C:UsershikumaDocumentsIR");如果(directoryInfo.Exists){treeView1.AfterSelect+=treeView1_AfterSelect;BuildTree(directoryInfo,treeView1.Nodes);}}privatevoidBuildTree(DirectoryInfodirectoryInfo,TreeNodeCollectionaddInMe){TreeNodecurNode=addInMe.Add(directoryInfo.Name);foreach(FileInfofileindirectoryInfo.GetFiles()){curNode.Nodes.添加(文件全名,文件名);}foreach(DirectoryInfo.GetDirectories()中的DirectoryInfo子目录){BuildTree(subdir,curNode.Nodes);}}privatevoidtreeView1_AfterSelect(objectsender,TreeViewEventArgse){if(e.Node.Name.EndsWith("txt")){this.richTextBox1.Clear();StreamReaderreader=newStreamReader(e.Node.Name);this.richTextBox1.Text=reader.ReadToEnd();读者。关闭();这是一个如何在富文本框中打开文件的简单示例,它可以改进很多:)。如果有帮助,您可能想标记为答案或投票:)!试试这个:(小心确保您的directoryInfo位置包含一些文件夹)DirectoryInfodirectoryInfo=newDirectoryInfo(@"C:UsersShahulDocumentsVisualStudio2010ProjectsTreeViewTreeViewbinFileExplorer");privatevoidForm1_Load(objectsender,EventArgse){if(directoryInfo.Existtry{treeView.Nodes.Add(directoryInfo.Name);DirectoryInfo[]directories=directoryInfo.GetDirectories();foreach(FileInfofileindirectoryInfo.GetFiles()){if(file.Exists){TreeNodenodes=treeView.Nodes[0].Nodes.Add(file.Name);}}if(directories.Length>0){foreach(目录中的DirectoryInfo目录){TreeNodenode=treeView.Nodes[0].Nodes.Add(directory.Name);node.ImageIndex=node.SelectedImageIndex=0;foreach(FileInfofileindirectory.GetFiles()){if(file.Exists){TreeNodenodes=treeView.Nodes[0].Nodes[node.Index].Nodes.Add(file.Name);}}}}}catch(Exceptionex){MessageBox.Show(ex.Message);}}}DirectoryInfo.Exists("文件资源管理器“)将要在调试模式下运行时,检查“C:UsersShahulDocumentsVisualStudio2010ProjectsTreeViewTreeViewbindebugFileExplorer”而不是“C:UsersShahulDocumentsVisualStudio2010ProjectsTreeViewTreeViewbinFileExplorer”试试这个:privatevoidForm1_Load(objectsender,EventArgse){如果(directoryInfo.Exists){try{treeView.Nodes.Add(LoadDirectory(directoryInfo));}catch(Exceptionex){MessageBox.Show(ex.Message);}}}privateTreeNodeLoadDirectory(DirectoryInfodi){if(!di.Exists)返回null;TreeNodeoutput=newTreeNode(di.Name,0,0);foreach(varsubDirindi.GetDirectories()){try{output.Nodes.添加(加载目录(子目录));}catch(IOExceptionex){//处理错误}catch{}}foreach(varfileindi.GetFiles()){if(file.Exists){output.Nodes.Add(file.Name);}}返回输出;最好将目录解析拆分为递归方法,这样您就可以一直沿着树向下走。这将阻止用户界面,直到它完全加载-但修复它超出了这个答案的范围......?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
