1. Ana Sayfa
  2. Visual Studio C#
  3. C# Örnekleri-Klasör,Alt Klasör ve Dosyaları TreeView’de Listeleme

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

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

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 – 3 defa indirildi – 63 KB

Kimler Neler Demiş?

avatar

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

  Subscribe  
Bildir