C# ta dizindeki belirli uzantılı dosyaları sıralamak

21 Temmuz 2008 – 00:12

Uygulama geliştirirken veritananı uygulamalarının yanısıra dosyalarlada işlemler gerçekleştiriyoruz. Bu işlemlerde işlem yapılacak dosyaları kullanıcıya bırakmak istiyorsak yada kendimiz belirli bir dizindeki dosyalarla toplu olarak işlem yapmak istiyorsak o dizindeki dosyaların tamamını yada belirli uzantıya sahip olanları sıralamak yada bir listeye atamak isteriz.

Bunun için ilk olarak DirectoryInfo türünde  bir nesne oluşturup,ister elle bir yol istersek FolderBrowserDialog tan alacağımız bir yolu bu nesneyi oluştururken belirliyoruz. Daha sonra yeni nesnemizin GetFiles() fonksiyonu ile o dizindeki verileri çekip eğer belirlediğimiz uzantı ile uyuşuyorsa listemizde gösteriyoruz. Ugulama bölümünde bu işlemi iki fonksyon ile gerçekleştirmeye çalışalım. Örnek uygulamamızda bir adet listbox ve butonumuz olsun. Tetikleyici olarak kullandığımız buton a basıldığında FolderBrowserDialog umuz açılsın ve kullanıcı içindeki .dxf uzantılı dosyaların isteleneceği dizini bize belirlesin. Daha sonrada yukarıda tanımladığımız işlemleri adım adım gerçekleştirelim.

 

private void button1_Click(object sender, EventArgs e)

        {

            listeyiDoldur(listBox1,“.dxf”);

        }

 

         public static void listeyiDoldur(ListBox lb, string uzanti)

        {

            lb.Items.Clear();

            FolderBrowserDialog fbd = new FolderBrowserDialog();

            if (fbd.ShowDialog() == DialogResult.OK)

            {

                DirectoryInfo klasor = new DirectoryInfo(fbd.SelectedPath);

                FileInfo[] dosyalar = klasor.GetFiles();

                foreach (FileInfo dosya in dosyalar)

                {

                    if (dosya.Extension.ToLower() == uzanti.ToLower().Trim())

                    {

                        lb.Items.Add(dosya.Name);

                    }

                }

 

                listeyiDuzenle(lb, klasor.GetDirectories(), uzanti);

            }

        }

 

        public static void listeyiDuzenle (ListBox lb, DirectoryInfo[] dizinler, string uzanti)

        {

            foreach (DirectoryInfo dizin in dizinler)

            {

                FileInfo[] dosyalar = dizin.GetFiles();

                foreach (FileInfo dosya in dosyalar)

                {

                    if (dosya.Extension == uzanti)

                    {

                        lb.Items.Add(dosya.Name);

                    }

                }

                listeyiDuzenle (lb, dizin.GetDirectories(), uzanti);

            }

     }

 

Bu işlemleri gerçekleştirdikten sonra uygulamamızı çalıştırarak belirlediğimiz dizindeki dxf uzantılı dosyalarımızı listbox ımızda sıralamış oluyoruz.

 

Tahir MUTLU

http://www.tahirmutlu.com

 

Bookmark and Share

Post a Comment

Subscribe without commenting