为什么用本地硬盘内容填充tvwSource,要先清除所有节点?tvw.Nodes.Clear();

解决方案 »

  1.   

    以下是源代码private void FillDirectoryTree(TreeView tvw, bool isSource)
            {
                tvw.Nodes.Clear(); //问题就是这,为什么要先清除结点内容呢,不是还没填充吗?
                string[] strDrives = Environment.GetLogicalDrives();
                foreach (string rootDirectoryName in strDrives)
                {
                    try
                    {
                        DirectoryInfo dir =
                            new DirectoryInfo(rootDirectoryName);
                        dir.GetDirectories();
                        TreeNode ndRoot = new TreeNode(rootDirectoryName);
                        tvw.Nodes.Add(ndRoot);
                        if (isSource)
                        {
                            GetSubDirectoryNodes(ndRoot, ndRoot.Text, true, 1);
                        }
                        else
                        {
                            GetSubdirectoryNodes(
                                ndRoot, ndRoot.Text, false, 1
                                );
                        }
                    }
                        catch
                    {
                        
                        }
                    Application.DoEvents();
                    
                }
            }