【问题标题】:Display folder and file (only .doc/docx) in tree view with their icon在树视图中显示文件夹和文件(仅限 .doc/docx)及其图标
【发布时间】:2012-09-22 11:26:36
【问题描述】:

我在 C# 中创建一个窗口窗体,其中有一个 TreeView 控件。我必须完成以下任务:

  • 点击浏览按钮
  • 选择基础文件夹
  • 显示所有文件(.doc/.docx)和基本文件夹的文件夹及其图标
  • 单击子文件夹将其展开并显示其中包含的文件和文件夹

请给我一些建议/链接。

【问题讨论】:

    标签: c# asp.net winforms


    【解决方案1】:

    【讨论】:

    • 下载图标文件,放入项目目录,在文件列表输出中检查文件类型和输出图标图像在文件名之前
    【解决方案2】:

    我使用了以下代码:

       void GetTree(string strSearchPath)
            {
                treeFiles.Nodes.Clear();
                SetNode(treeFiles, strSearchPath);
                treeFiles.TopNode.Expand();
            }
    
            void SetNode(TreeView treeName, string path)
            {
                DirectoryInfo dirInfo = new DirectoryInfo(path);
                TreeNode node = new TreeNode(dirInfo.Name);
                node.Tag = dirInfo;
                GetFolders(dirInfo, node);
                GetFiles(dirInfo, node);
                treeName.Nodes.Add(node);
            }
    
            void GetFolders(DirectoryInfo d, TreeNode node)
            {
    
                try
                {
                    DirectoryInfo[] dInfo = d.GetDirectories();
    
                    if (dInfo.Length > 0)
                    {
                        TreeNode treeNode = new TreeNode();
                        foreach (DirectoryInfo driSub in dInfo)
                        {
                            treeNode = node.Nodes.Add(driSub.Name, driSub.Name, 0, 0);
                            GetFiles(driSub, treeNode);
                            GetFolders(driSub, treeNode);
                        }
                    }
                }
                catch (Exception ex) { }
    
            }
    
            void GetFiles(DirectoryInfo d, TreeNode node)
            {
                var files = d.GetFiles("*.doc*");
                FileInfo[] subfileInfo = files.ToArray<FileInfo>();
    
                if (subfileInfo.Length > 0)
                {
                    for (int j = 0; j < subfileInfo.Length; j++)
                    {
                        bool isHidden = ((File.GetAttributes(subfileInfo[j].FullName) & FileAttributes.Hidden) == FileAttributes.Hidden);
                        if (!isHidden)
                        {
                            string strExtention = Path.GetExtension(subfileInfo[j].FullName);
                            if (strExtention.Contains("doc"))
                            {
                                TreeNode treeNode = new TreeNode();
                                string path = subfileInfo[j].FullName;
                                string name = subfileInfo[j].Name;
                                treeNode = node.Nodes.Add(path, name, 1, 1);
                                AddBookMarkFile(path, treeNode);
                            }
                        }
                    }
                }
            }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-06
      相关资源
      最近更新 更多