Ejemplo n.º 1
0
        private void btnLoad_Click(object sender, EventArgs e)
        {
            string dir = txtDir.Text;

            if (string.IsNullOrEmpty(dir))
            {
                Utility.ShowMessage("目录不能为空!");
                return;
            }

            try
            {
                FileIndex         fileIndex = new FileIndex();
                List <TSTreeNode> list      = fileIndex.GetFileIndexList(dir);

                tvFileList.Nodes.Clear();
                TreeNode   root     = new TreeNode();
                TSTreeNode rootNode = list.SingleOrDefault(p => string.IsNullOrEmpty(p.PID));
                if (rootNode != null)
                {
                    root.Text      = rootNode.Name;
                    root.Name      = rootNode.ID;
                    root.ForeColor = Color.Blue;
                    BindTreeNode(root, list);
                    tvFileList.Nodes.Add(root);
                }
            }
            catch (Exception ex)
            {
                Utility.ShowError(ex.Message);
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 返回指定路径的文件索引信息,返回的数据构造成了树节点类型
        /// </summary>
        /// <param name="dir"></param>
        /// <returns></returns>
        public List <TSTreeNode> GetFileIndexList(string dir)
        {
            List <TSTreeNode> list    = new List <TSTreeNode>();
            DirectoryInfo     dirInfo = new DirectoryInfo(dir);
            TSTreeNode        root    = new TSTreeNode();

            root.ID     = Guid.NewGuid().ToString();
            root.Name   = dirInfo.Name;
            root.IsLeaf = false;
            list        = IndexFile(dirInfo, root);
            list.Add(root);
            return(list);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 递归索引目录下的文件
        /// </summary>
        /// <param name="parentDir"></param>
        /// <param name="parentNode"></param>
        /// <returns></returns>
        private List <TSTreeNode> IndexFile(DirectoryInfo parentDir, TSTreeNode parentNode)
        {
            List <TSTreeNode> list = new List <TSTreeNode>();

            DirectoryInfo[] childDir = parentDir.GetDirectories();
            if (childDir != null && childDir.Length > 0)
            {
                for (int i = 0; i < childDir.Length; i++)
                {
                    //加目录
                    TSTreeNode node = new TSTreeNode();
                    node.ID     = Guid.NewGuid().ToString();
                    node.PID    = parentNode.ID;
                    node.Name   = childDir[i].Name;
                    node.IsLeaf = false;
                    list.Add(node);
                    List <TSTreeNode> tempList = IndexFile(childDir[i], node);
                    foreach (var item in tempList)
                    {
                        list.Add(item);
                    }
                }
            }
            //加文件
            FileInfo[] fileList = parentDir.GetFiles();
            for (int i = 0; i < fileList.Length; i++)
            {
                TSTreeNode node = new TSTreeNode();
                node.ID     = Guid.NewGuid().ToString();
                node.PID    = parentNode.ID;
                node.Name   = fileList[i].Name;
                node.IsLeaf = true;
                list.Add(node);
            }
            return(list);
        }