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

C# OpenFileDialog Nasıl Kullanılır?


+ - 2

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.

c# openfiledialog filter

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 filter excel

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. ;)

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 (2)

  1. 4 sene önce

    Merhaba , bu yazı ödevim için çok yararlı oldu . Cidden çok güzel anlatmışsınız teşekkür ederim.

Bir cevap yazın

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