İlginizi Çekebilir
  1. Ana Sayfa
  2. C Sharp

C# FolderBrowserDialog Kullanımı – Örnekli Anlatım

C# FolderBrowserDialog Kullanımı – Örnekli Anlatım
+ - 1

C# FolderBrowserDialog Kullanımı – Örnekli Anlatım, dersim ile c# eğitimlerime devam ediyorum. C# OpenFileDialog konusunu daha önce açıklamıştım ama bu dersi yazmayı unutmuşum. Bugün bana lazım oldu ve siteme baktım o dersi bulamadım. O yüzden bu dersi de yazmak istedim.

 

C# FolderBrowserDialog Kullanımı

C# OpenFileDialog, ile dosyaları seçebiliyorken, C# FolderBrowserDialog ile klasör seçiyoruz. Dialog pencereleri daha farklıdır. Aşağıda görebilirsiniz.

 

c# folderbrowserdialog kullanımı

Folder Browser Dialog’u projelerimize toolbox’tan yada kod ile ekleyebiliyoruz. Ben kod ile ekleyenlerdenim. Yani bu tarz browser dialog ları her zaman kod yazarak ekliyorum.

Nasıl ekleneceğini görelim.

        private void btn_goster_Click(object sender, EventArgs e)
        {
            FolderBrowserDialog Klasor = new FolderBrowserDialog();
            Klasor.ShowDialog();
        }

yukarıdaki kodlar ile folder browser dialog penceresini açabiliyoruz. Ama şu kodlarla bir işimize yaramıyor. Seçtiğimiz klasörün yolunu almamız gerekiyor. Şimdi de seçtiğimiz klasörün yolunu nasıl alacağımıza bakalım.

Seçili Klasörün Yolunu Almak

        string Secili_Klsaor_Yolu = "";
        private void btn_goster_Click(object sender, EventArgs e)
        {
            FolderBrowserDialog Klasor = new FolderBrowserDialog();
            Klasor.ShowDialog();
            Secili_Klsaor_Yolu = Klasor.SelectedPath;
            lbl_klasor_yolu.Text = Klasor.SelectedPath;
        }

Tanımladığımız bir değişkene ve forma eklediğimiz label’in text özelliğine seçtiğimiz klasörün yolunu bu şekilde alıyoruz. Şimdi Klasörümüzün yolunu aldık ve bir label’e yazdık.

 

Klasör Yolu Seçildiyse İşlem Yapmak

Yukarıda bir klasör seçildiğini varsaydık. Ama ya klasör seçilmediyse… Kodlarımızın hata vermemesi için sadece bir klasör seçildiyse gerekli işlemleri yapacak bir yöntemimiz var. Onu da görelim.

        string Secili_Klsaor_Yolu = "";
        private void btn_goster_Click(object sender, EventArgs e)
        {
            FolderBrowserDialog Klasor = new FolderBrowserDialog();
            if (Klasor.ShowDialog() == DialogResult.OK)
            {
                Secili_Klsaor_Yolu = Klasor.SelectedPath;
                lbl_klasor_yolu.Text = Klasor.SelectedPath;
                // diğer işlemleri yapılacak.
            }
            else
            {
                MessageBox.Show("Hiçbir Klasör Seçilmedi");
            }           
        }

 

Başlangıç Klasörü Belirlemek

Yukarıdaki görselde folder browser dialog açıldığındaki gösterdiği klasör listesini görüyorsunuz. Biz bunu değiştirebiliyoruz. Yani folder browser dialog açıldığında şu klasör görünsün diyebiliriz. Ama burada şöyle bir sorun var… Bu klasör yolunu değiştiremiyorsunuz.

NOT: Desktop için

Environment.SpecialFolder.Desktop;

Kullanabilirsiniz.

        string Secili_Klsaor_Yolu = "";
        private void btn_goster_Click(object sender, EventArgs e)
        {
            FolderBrowserDialog Klasor = new FolderBrowserDialog();
            Klasor.RootFolder = Environment.SpecialFolder.CommonProgramFiles;
            if (Klasor.ShowDialog() == DialogResult.OK)
            {
                Secili_Klsaor_Yolu = Klasor.SelectedPath;
                lbl_klasor_yolu.Text = Klasor.SelectedPath;
            }
            else
            {
                MessageBox.Show("Hiçbir Klasör Seçilmedi");
            }

Kodlarımız yukarıdadır. Ekran çıktısı ise aşağıdadır.

c# folderbrowserdialog1.rootfolder

görselde gördüğünüz gibi bir ekran karşımızıa çıkıyor ve sadece bu klasörü kullanabiliyoruz. Bu klasörün dışına çıkamıyoruz.

Yeni Klasör Oluşturmak / Oluşturamamak

Kullanıcıdan gerekirse bir klasör oluşturmasını isteyebiliriz. Ya da oluşturmamasını isteyebiliriz. Bu gibi durumlarda Yukarıdaki görselde gördüğünüz folder browser dialog penceresinin sol alt kısmında “Yeni Klasör Oluştur” butonunu kapatıp açabiliyoruz. Şimdi onu nasıl yapacağımızı görelim.

        string Secili_Klsaor_Yolu = "";
        private void btn_goster_Click(object sender, EventArgs e)
        {
            FolderBrowserDialog Klasor = new FolderBrowserDialog();
            Klasor.RootFolder = Environment.SpecialFolder.CommonProgramFiles;
            Klasor.ShowNewFolderButton = false;
            if (Klasor.ShowDialog() == DialogResult.OK)
            {
                Secili_Klsaor_Yolu = Klasor.SelectedPath;
                lbl_klasor_yolu.Text = Klasor.SelectedPath;
            }
            else
            {
                MessageBox.Show("Hiçbir Klasör Seçilmedi");
            }           
        }

Ekran çıktısı aşağıdaki gibidir.

folderbrowserdialog1 c# example

Yukarıdaki iki görseli karşılaştırabilirsiniz. ;)

 

Folder Browser Dialog Ekranına Açıklama Eklemek

Folder Browser Dialog ekranına “Klasörlere Gözat” kısmının hemen altındaki boşluğa açıklamalar yazabiliriz. Şimdi O kısma nasıl yazı yazacağımıza bakalım.

        string Secili_Klsaor_Yolu = "";
        private void btn_goster_Click(object sender, EventArgs e)
        {
            FolderBrowserDialog Klasor = new FolderBrowserDialog();
            Klasor.RootFolder = Environment.SpecialFolder.CommonProgramFiles;
            Klasor.ShowNewFolderButton = false;
            Klasor.Description = "Lütfen Bir Dosya Seçin";
            if (Klasor.ShowDialog() == DialogResult.OK)
            {
                Secili_Klsaor_Yolu = Klasor.SelectedPath;
                lbl_klasor_yolu.Text = Klasor.SelectedPath;
            }
            else
            {
                MessageBox.Show("Hiçbir Klasör Seçilmedi");
            }           
        }

Kodlarımız yukarıdaki gibidir. Şimdi nasıl göründüğüne bakalım.

c# folderbrowserdialog kullanımı

Yazdığımız açıklama gördüğünüz gibi başlığın hemen altında görünmektedir. Bu ekranın başlık kısmını değiştiremiyoruz.


Buraya kadar bu nesnenin kendisini gördük. Şimdi bir senaryo üzerinden örnekle görelim.

Yazının girişinde, bu nesneyi bugün bir projemde kullandım demiştim. Şimdi O işleme kısaca değineyim. Bir firmadan gelen xml dosyalarının içeriğini okumam gerekiyordu. Xml’ler bir klasörde toplanmıştı ve o klasördeki tüm xml leri tek tek okuması gerekiyordu. Binlerce xml olduğundan tek tek okutmak mümkün değildi. O yüzden folder browser dialog ile klasördeki xml dosyaların listesini alıp işlemi yaptırmıştım.

Elbette burada xml okuma işlemlerinden bahsetmeyeceğim. Sadece seçilen klasördeki dosyalardan sadece xml uzantılı olanların listesi almayı göstereceğim.

Bu işlem için DirectoryInfo ve FileInfo sınıflarını kullanacağız.

DirectoryInfo ile klasör bilgileri aldıktan sonra, FileInfo ile klasördeki dosyaların özelliklerine bakarak sadece xml uzantılı olanları isteyeceğiz.

İşlemi gösterebilmek için, masaüstünde bir klasör açtım ve içi boş bir xml dosyası oluşturdum ve çoğalttım. Formumuza da bir listbox nesnesi ekledim. Yukarıdaki örnek üzerinden anlatıma devam edeceğim. Kodları ve ekran görüntüsünü de vereceğim.

        string Secili_Klsaor_Yolu = "";
        private void btn_goster_Click(object sender, EventArgs e)
        {
            FolderBrowserDialog Klasor = new FolderBrowserDialog();
            //Klasor.RootFolder = Environment.SpecialFolder.CommonProgramFiles;
            Klasor.ShowNewFolderButton = false;
            Klasor.Description = "Lütfen Bir Dosya Seçin";
            if (Klasor.ShowDialog() == DialogResult.OK)
            {
                Secili_Klsaor_Yolu = Klasor.SelectedPath;
                lbl_klasor_yolu.Text = Klasor.SelectedPath;

                // Xml dosyalarının olduğu klasörü aldık.
                DirectoryInfo XMLKonum = new DirectoryInfo(Klasor.SelectedPath);
                // klasördeki, sadece xml uzantılı dosyaları aldık
                FileInfo[] Dosyalar = XMLKonum.GetFiles("*.xml");
                listBox1.Items.Clear();
                // Array List'imizi listbox1'in datasource'una aktardık.
                listBox1.DataSource = Dosyalar;
            }
            else
            {
                MessageBox.Show("Hiçbir Klasör Seçilmedi");
            }
        }

Açıklamaları ile birlikte kodlar yukarıdadır ve ekran çıktısı aşağıdadır.

folderbrowserdialog1 c# example

 


C# FolderBrowserDialog Kullanımı – Örnekli Anlatım, dersimizde bu kadardı dostlar. Umarım faydalı bir yazı olmuştur.

C Sharp Eğitim Seti eğitimi sayfasına gitmek için tıklayınız.

Ayrıca kısa süre önce tüm YENİ derslerimi tek bir proje içinde yapıp github’a yükleyeceğim demiştim. Bu dersimde o projenin içerisinde bir klasör olarak yerini almıştır. Buraya tıklayarak projeye ulaşabilirsiniz.

Sağlıcakla ve takipte kalın ;)

Bol kodlu günler…

 

 

Bu yazıya tepkiniz ne oldu?

Yazar Hakkında

Lise Ağ Sistemleri ve Yönetimi bölümü, üniversite Bilgisayar Programcılığı bölümü Ön Lisans, Yönetim Bilişim Sistemleri Lisans öğrenimi aldım. Askerlik görevimi tamamladım. Uzmanlık alanım; C# ve SQL Programlama dilleri ile müşteri odaklı, kullanıcı dostu ERP ve CRM gibi sistemleri geliştirmektir. Ayrıca şuanda PHP ve MYSQL alanında projeler geliştirmekteyim. C++, Phyton, Xamarin, MVC gibi konuları öğrenmek ve kendimi geliştirme çabası içerisindeyim. Discord için: https://discord.gg/FBxZeHu9

Değerli yorumlarınızı bekliyorum. :)

Yorumlar (1)

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.