Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.06.2011, 17:27   #1
Progsenya
Пользователь
 
Регистрация: 30.05.2010
Сообщений: 80
По умолчанию TreeView рекупсивно отображать папки

Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace TreeView_Folder
{

    public partial class Form1 : Form
    {




        public Form1()
        {
            InitializeComponent();
            AddRoot(@"D:\", treeView1, imageList1);
        }
        public void AddRoot(string name, TreeView TreeView1, ImageList ImageList1)
        {
            DirectoryInfo di = new DirectoryInfo(@"D:\");
            try
            {
                foreach (DirectoryInfo di2 in di.GetDirectories())
                {
                    TreeNode tn = new TreeNode(di2.Name);
                    TreeView1.ImageList = ImageList1;
                    
                    foreach (DirectoryInfo di3 in di2.GetDirectories())
                    {
                        AddRoot(di2.FullName, treeView1, imageList1);
                    }
                    tn.ImageIndex = 0;
                }
                    //TreeView1.Nodes.Add(tn);

                
            }
            catch (UnauthorizedAccessException e)
            {
                Console.WriteLine(e.Message);
            }

        }
    }
}
не получается рекурсивно отображать в treewiev папки
юез рекурсии работает помогите исправить кто может
Progsenya вне форума Ответить с цитированием
Старый 18.06.2011, 17:46   #2
Spawn™Production®
Форумчанин
 
Аватар для Spawn™Production®
 
Регистрация: 06.05.2011
Сообщений: 287
По умолчанию

Код:
        private void Form1_Load(object sender, EventArgs e)
        {
            DirectoryRecursive(treeView1.Nodes.Add(@"e:\"), new DirectoryInfo(@"e:\"));
        }

        private void DirectoryRecursive(TreeNode node, DirectoryInfo dir)
        {
            try
            {
                var dirs = dir.GetDirectories();
                foreach (var subdir in dirs)
                    DirectoryRecursive(AddNode(node, subdir.Name), subdir);
            }
            catch
            {
            }
        }

        private TreeNode AddNode(TreeNode node, string text)
        {
            return node.Nodes.Add(text);
        }
Комментарии излишни, мне кажется...
Spawn™Production® вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TWebBrowser. Отображать в одном окне. Ponomar Работа с сетью в Delphi 0 19.04.2011 19:45
Как из папки в дереве TreeView выбрать все файлы? prw07 Общие вопросы Delphi 1 19.10.2010 10:26
Как не отображать столбец. Марк Охман БД в Delphi 3 04.10.2010 10:14
Скрывать/отображать графики на диаграмме O_H Microsoft Office Excel 2 06.09.2010 14:09
Отображать pictureBox Linore Общие вопросы .NET 4 04.03.2010 23:57