0

コントロールがあるC#でウィンドウフォームを作成していますTreeView。私は次のタスクを実行する必要があります:

  • 参照ボタンをクリックします
  • ベースフォルダを選択します
  • ベースフォルダのすべてのファイル(.doc/ .docx)とフォルダをアイコンで表示します
  • サブフォルダをクリックして展開し、そこに含まれるファイルとフォルダを表示します

いくつかの提案/リンクを教えてください。

4

2 に答える 2

0

これはあなたを助ける必要がありますhttp://www.csharp-examples.net/get-files-from-directory/

于 2012-09-22T11:29:27.117 に答える
0

私は次のコードを使用しました:

   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);
                        }
                    }
                }
            }
        }
于 2013-01-09T14:04:43.340 に答える