C# OpenFileDialog Nasıl Kullanılır? dersimizle C Sharp eğitimlerimize devam edelim. C Sharp openfiledialog bir çok projemizde bize gereken bir kontroldür. Projeye ekleyeceğimiz bir dosyanın yerini bulmak için kullandığımız iletişim kutusudur. Bu kontrol sayesinde dosyanın tam yolunu, adını, uzantısını vs. de elde etmiş oluruz.
Görüntüsü şu şekildedir.
Diğer C# derslerimi görmek isterseniz tıklayınız.
Bu dersimizde hep kod üzerinden gideceğiz. Bu sebeple kodlarımızı verelim.
C Sharp OpenFileDialog Tanımlaması Yapmak
OpenFileDialog file = new OpenFileDialog();
Bu kod ile OpenFileDialog tanımlamasını yapıyoruz. Diğer özelliklerini bu tanımlama üzerinden anlatacağım.
Boş bir ekran açmış oluyoruz. Tabi bu kodlar ile hiçbir işimize yaramaz.
private void btnDosyaSec_Click(object sender, EventArgs e) { OpenFileDialog file = new OpenFileDialog(); file.ShowDialog(); // openfiledialog ekranını açıyoruz. }
C Sharp OpenFileDialog Filter Özelliği
private void btnDosyaSec_Click(object sender, EventArgs e) { OpenFileDialog file = new OpenFileDialog(); file.Filter = "Excel Dosyası |*.xlsx"; // dosya filtresi için bu kodu kullanıyoruz. Şuan sadece xlsx dosyalarını görecektir. file.ShowDialog(); }
Filter özelliği sayesinde iletişim kutusunda sadece excel dosyaları görünecektir.
private void btnDosyaSec_Click(object sender, EventArgs e) { OpenFileDialog file = new OpenFileDialog(); file.Filter = "Excel Dosyası |*.xlsx| Excel Dosyası|*.xls"; // burada gördüğünüz gibi iki adet filtre verdik. file.FilterIndex = 2; // bu kod ile varsayılan olarak 2. filtre ile açılacaktır. file.ShowDialog(); }
C Sharp OpenFileDialog InitalDirectory Özelliği
Bu özellik ile iletişim kutusu C sürücüsüne odaklanacaktır. Yani Dosya seç butonuna tıkladığımızda C sürücüsü ekrana gelecektir.
private void btnDosyaSec_Click(object sender, EventArgs e) { OpenFileDialog file = new OpenFileDialog(); file.InitialDirectory = "C:"; // bu kod ile her zaman C bölümünü açacaktır. Yani açıldığında C bölümünü gösterecek. file.Filter = "Excel Dosyası |*.xlsx| Excel Dosyası|*.xls"; file.FilterIndex = 2; file.ShowDialog(); }
private void btnDosyaSec_Click(object sender, EventArgs e) { OpenFileDialog file = new OpenFileDialog(); file.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); //öncekinden farkı her açıldığında masaüstünü gösterecektir. // masaüstünü göstermek istiyorum ama kullanıcı adı farkından olmuyor diye düşünüyorsanız file.Filter = "Excel Dosyası |*.xlsx| Excel Dosyası|*.xls"; file.FilterIndex = 2; file.ShowDialog(); }
Bu sefer iletişim kutusu açıldığında masaüstünü gösterecektir.
C Sharp OpenFileDialog RestoreDirectory Özelliği
En son hangi klasörden dosya çekildiyse o klasöre odaklanacaktır. Örneğin. D sürücüsündeki Raporlar klasöründen bir excel import ettiniz. İletişim kutusu bir daha açıldığında yine aynı klasöre odaklanacaktır.
private void btnDosyaSec_Click(object sender, EventArgs e) { OpenFileDialog file = new OpenFileDialog(); //file.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); file.Filter = "Excel Dosyası |*.xlsx| Excel Dosyası|*.xls"; file.FilterIndex = 2; file.RestoreDirectory = true; // bu kod ile her açıldığında açılan bir önceki klasörü açacaktır. file.ShowDialog(); }
C Sharp OpenFileDialog CheckFileExist Özelliği
İletişim kutusundaki dosya adı kısmına bir şeyler yazdığınızda odaklandığınız klasör içinde o isimde bir dosya var mı yok mu onu kontrol eder.
private void btnDosyaSec_Click(object sender, EventArgs e) { OpenFileDialog file = new OpenFileDialog(); file.Filter = "Excel Dosyası |*.xlsx| Excel Dosyası|*.xls"; file.FilterIndex = 2; file.RestoreDirectory = true; file.CheckFileExists = false; // bu kod dosya adı kısmına bir isim yazdığınızda dosya var mı yok mu kontrolünü yapar. file.ShowDialog(); }
C Sharp OpenFileDialog Title Özelliği
Açılan iletişim kutusunun başlında ne yazacağınız belirlersiniz.
private void btnDosyaSec_Click(object sender, EventArgs e) { OpenFileDialog file = new OpenFileDialog(); file.Filter = "Excel Dosyası |*.xlsx| Excel Dosyası|*.xls"; file.FilterIndex = 2; file.RestoreDirectory = true; file.CheckFileExists = false; file.Title = "Excel Dosyası Seçiniz.."; // pencerenin üstünde varsayılan olarak "Aç" yazar bu kod ile başlığı değiştirebiliriz. file.ShowDialog(); }
C Sharp OpenFileDialog Seçilen Dosyanın Yolunu ve Adını Almak
*.FileName ile seçilen dosyanın tüm yolunu alırsınız. Örn. D://Raporlar/31.01.2018/xxx_Raporu.xlsx
*.SafeFileName ile seçilen dosyanın sadece adını alırsınız. Örn. xxx_Raporu.xlsx
private void buttonDosyaSec_Click(object sender, EventArgs e) { OpenFileDialog file = new OpenFileDialog(); //file.Filter = "Excel Dosyası |*.xlsx| Excel Dosyası|*.xls"; file.FilterIndex = 2; file.RestoreDirectory = true; file.CheckFileExists = false; file.Title = "Excel Dosyası Seçiniz.."; file.ShowDialog(); string DosyaYolu = file.FileName; // seçilen dosyanın tüm yolunu verir string DosyaAdi = file.SafeFileName; // seçilen dosyanın adını verir. }
Gerektiği durumlarda iletişim kutusu ile bir dosya seçildi mi? sorununun cevabını almanız gerekir. Çünkü dosya seçilmediyse hiçbir işlem yaptırmamanız gerekiyordur. Aksi halde program hata verecektir.
private void buttonDosyaSec_Click(object sender, EventArgs e) { OpenFileDialog file = new OpenFileDialog(); file.Filter = "Excel Dosyası |*.xlsx| Excel Dosyası|*.xls"; file.FilterIndex = 2; file.RestoreDirectory = true; file.CheckFileExists = false; file.Title = "Excel Dosyası Seçiniz.."; if (file.ShowDialog() == DialogResult.OK) { // dosya seçildi ise string DosyaYolu = file.FileName; string DosyaAdi = file.SafeFileName; } }
ShowDialog() metodu geriye bir OK yada CANCEL olarak iki farklı dialogResult değeri döndürür. Bizde bunu yakalayarak dosyanın seçilip seçilmediğini anlarız. İletişim kutusundan dosya seçildiyse yani “Tamam” butonuna tıklandıysa geriye OK dialogResult’u döner.
C Sharp OpenFileDialog MultiSelect Özelliği
Aynı anda birden fazla dosya import etmek istersek bu özelliği kullanırız.
private void buttonDosyaSec_Click(object sender, EventArgs e) { OpenFileDialog file = new OpenFileDialog(); //file.Filter = "Excel Dosyası |*.xlsx| Excel Dosyası|*.xls"; file.FilterIndex = 2; file.RestoreDirectory = true; file.CheckFileExists = false; file.Title = "Excel Dosyası Seçiniz.."; file.Multiselect = true; // bu kod çoklu seçim yapabilmemizi sağlar. if (file.ShowDialog() == DialogResult.OK) { string DosyaYolu = file.FileName; string DosyaAdi = file.SafeFileName; } }
MultiSelect özelliğini kullandığımızda aynı anda birden fazla dosya import edebiliriz. Burada da bize dosya bilgilerini bir ArrayList olarak verir. Bizde bu ArrayList’i kullanarak işlemlerimizi yaparız.
*.fileNames olarak kullanırız. Çoklu olduğundan sonuna (s) çoğul eki gelir.
*.SafeFileNames olarak kullanırız. Çoklu olduğundan sonuna (s) çoğul eki gelir.
string[] dosya = fileNames; for (int i = 0; i < fileNames.Length; i++) { ListViewItem li = new ListViewItem(dosya); ListView1.Items.Add(li); } label1.Text = dosya.Length.ToString()+" dosya eklendi.";
C Sharp OpenFileDialog Reset Özelliği
İletişim kutusu ayarlarını sıfırlamak için bu özelliği kullanırız.
file.Reset(); // openfiledialog ayarlarını sıfırlar
C#OpenFileDialog Nasıl Kullanılır? dersimiz bu kadar dostlar. Umarım açıklayıcı bir şekilde anlatabilmişimdir. Sorularınızı yorum olarak yada iletişim sayfasındaki mail adreslerimden bana ulaştırabilirsiniz. Gmail olursa daha hızlı dönüş yaparım.
Diğer C# derslerimi görmek isterseniz tıklayınız.
Sağlıcakla ve takipte kalın. ;)
Merhaba , bu yazı ödevim için çok yararlı oldu . Cidden çok güzel anlatmışsınız teşekkür ederim.
Merhaba,
O halde ne mutlu bana. Yorumun için teşekkür ederim. <3