1. Ana Sayfa
  2. Visual Studio C#

C# Örnekleri-Klasör,Alt Klasör ve Dosyaları TreeView’de Listeleme

C# Örnekleri-Klasör,Alt Klasör ve Dosyaları TreeView'de Listeleme
3

Bu dersimizde, C# TreeView içinde klasörleri, alt klasörleri ve dosyaları görüntüleme işlemi nasıl yapılır onu anlatacağım.

Yapacağımız uygulama, Tooltip’i kullanarak klasör ve dosya isimlerini TreeView’de görüntüleme işlemi de yapacağız, bun işlemi TreeView’de fare üzerine geldiğinde kontrol işlemi yaparak açıklamayı yazdıracağız.
Bu makale, TreeView ve TreeNode’un kavramlarını anlamanıza yardımcı olacaktır.
İlk olarak form Tasarımını yapıyoruz

Bunun için Form üzerine iki Button, bir Textbox,bir ProgressBar,bir TreeView,FolderBrowserDialog, ImageList ve ToolTip nesnelerini ekliyoruz.

C# Örnekleri-Klasör,Alt Klasör ve Dosyaları TreeView'de Listeleme
C# Örnekleri-Klasör,Alt Klasör ve Dosyaları TreeView’de Listeleme

Form tasarımını bitirdiysek şimdi kodlarımıza bakalım ilk olarak listelenecek klasör için FolderBrowserDialog kullanmamız gerekiyor klasör seçimi yapıldıktan sonra Dosyaları Yükle butonu ile seçilen klasör yolundaki alt klasör ve dosyaları TreeView içerisinde listeliyoruz.

using System.Windows.Forms;
using System.IO;

Klasöre göz at butonu için yazacağımız kodlar.

  folderBrowserDialog1.SelectedPath = txtklasoryolu.Text;
            DialogResult sonuc = folderBrowserDialog1.ShowDialog();
            if (sonuc == System.Windows.Forms.DialogResult.OK)
                txtklasoryolu.Text = folderBrowserDialog1.SelectedPath;

Dosyaları Yükle butonu için yazacağımız kodlar. Burada ilerleme çubuğu değerini sıfırlama ve Treeview verilerini silme işlemlerini yapıyoruz.

 progressBar1.Value = 0;

            treeView1.Nodes.Clear();
            toolTip1.ShowAlways = true;
            if (txtklasoryolu.Text != "" && Directory.Exists(txtklasoryolu.Text))
                Klasoryukle(txtklasoryolu.Text);
            else
                MessageBox.Show("Klasör Seçin!!");

Daha sonra TreeView’de listelenecek klasör , alt klasör ve dosyalar için fonksiyonlarımız ve en sonda da yapılan işlemlerin ilerlermesini gösterecek olan ProgressBar kodlarımız var.

 public void Klasoryukle(string Dir)
        {
            DirectoryInfo di = new DirectoryInfo(Dir);
            progressBar1.Maximum = Directory.GetFiles(Dir, "*.*", SearchOption.AllDirectories).Length + Directory.GetDirectories(Dir, "**", SearchOption.AllDirectories).Length;
            TreeNode tds = treeView1.Nodes.Add(di.Name);
            tds.Tag = di.FullName;
            tds.StateImageIndex = 0;
            DosyaYukle(Dir, tds);
            AltKlasorYukle(Dir, tds);
        }

 private void AltKlasorYukle(string dir, TreeNode td)
        {

            string[] subdirectoryEntries = Directory.GetDirectories(dir);

            foreach (string subdirectory in subdirectoryEntries)
            {
                DirectoryInfo di = new DirectoryInfo(subdirectory);
                TreeNode tds = td.Nodes.Add(di.Name);
                tds.StateImageIndex = 0;
                tds.Tag = di.FullName;
                DosyaYukle(subdirectory, tds);
                AltKlasorYukle(subdirectory, tds);
                ListeyiGuncelle();
            }
        }

        private void DosyaYukle(string dir, TreeNode td)
        {
            string[] Files = Directory.GetFiles(dir, "*.*");
            foreach (string file in Files)
            {
                FileInfo fi = new FileInfo(file);
                TreeNode tds = td.Nodes.Add(fi.Name);
                tds.Tag = fi.FullName;
                tds.StateImageIndex = 1;
                ListeyiGuncelle();
            }
        }

        private void ListeyiGuncelle()
        {
            if (progressBar1.Value < progressBar1.Maximum)
            {
                progressBar1.Value++;
                int percent = (int)(((double)progressBar1.Value / (double)progressBar1.Maximum) * 100);
                progressBar1.CreateGraphics().DrawString(percent.ToString() + "%", new Font("Arial", (float)8.25, FontStyle.Regular), Brushes.Black, new PointF(progressBar1.Width / 2 - 10, progressBar1.Height / 2 - 7));

                Application.DoEvents();
            }
        }

TreeView üzerine fare ile gelince ilgili dosya ve klasör isimlerini ToolTip’de göstermek için gerekli olan kodlarımız..

 private void treeView1_MouseMove(object sender, MouseEventArgs e)
        {

            TreeNode theNode = this.treeView1.GetNodeAt(e.X, e.Y);
            if (theNode != null && theNode.Tag != null)
            {
                if (theNode.Tag.ToString() != this.toolTip1.GetToolTip(this.treeView1))
                    this.toolTip1.SetToolTip(this.treeView1, theNode.Tag.ToString());
            }
            else
            {
                this.toolTip1.SetToolTip(this.treeView1, "");
            }
        }

İndir “C# Örnekleri-Klasör,Alt Klasör ve Dosyaları TreeView'de Listeleme” Klasor_Dosya_Listeleme_Treeview.zip – 566 defa indirildi – 63 KB

Subscribe
Bildir
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

3 Yorum
Inline Feedbacks
View all comments
Emin Yalçın

bu gerçekten çok iyiydi. vb.net ile program yazıyorum. bazı sitelerde buldum kodlar. treeview için. sadece klasör listelemek vardı. oda yeterdi bana ama bir yerde hata aldım çalışmadı. bunu vb.net’e çevirdim tam istediğim gibi oldu. biraz ekleme yapmam lazım. izin verilmeyen klasörleri ve birleşim noktası olarak gösterilen klasörleri atlayabilirse bilgisayarın haritasını çıkartabilirim. çok teşekkür ederim

Ömer ÜSTÜNER

Aynı zamanda ilgili kısma Hyperlink verebiliyor muyuz. Ağaç içerisinde tıkladığım zaman beni ilgili dosyaya götürmesini istiyorum.