C# Windows Form’da Dosya İşlemleri

C# Windows Form uygulamalarında dosya işlemleri, kullanıcıdan veri alıp saklama, daha önce kaydedilen bilgileri okuma ve gerektiğinde düzenleme gibi işlemleri kapsar. Dosya işlemleri, özellikle uygulamaların kalıcı veri tutması gereken durumlarda oldukça önemlidir.

Bu yazıda, C# Windows Form kullanarak temel dosya işlemlerini (okuma, yazma, silme ve oluşturma) nasıl yapabileceğinizi örneklerle açıklayacağım.


1. Dosya İşlemleri İçin Gerekli Kütüphane

C# dosya işlemleri yapmak için System.IO isimli kütüphaneyi kullanırız. Bu kütüphane, dosyalar ve dizinlerle çalışmak için birçok faydalı sınıf ve metot sağlar.

En Çok Kullanılan Sınıflar

  • File: Dosya oluşturma, silme, okuma, yazma gibi işlemleri yapar.
  • FileInfo: Dosya özelliklerini yönetir.
  • StreamReader: Dosyadan veri okumak için kullanılır.
  • StreamWriter: Dosyaya veri yazmak için kullanılır.
  • Directory: Klasör oluşturma ve yönetme işlemleri yapar.

2. Temel Dosya İşlemleri

a) Dosya Yazma (Oluşturma)

Bir metin dosyasına yazı yazmak için StreamWriter sınıfını kullanabiliriz.

private void btnDosyaOlustur_Click(object sender, EventArgs e)
{
    string dosyaYolu = @"C:\deneme.txt";

    using (StreamWriter sw = new StreamWriter(dosyaYolu))
    {
        sw.WriteLine("Merhaba, bu bir dosya yazma örneğidir.");
        sw.WriteLine("C# Windows Form ile dosya işlemleri yapabilirsiniz.");
    }

    MessageBox.Show("Dosya başarıyla oluşturuldu ve yazıldı.");
}
  • using: StreamWriter nesnesi otomatik olarak kapatılır ve bellekte yer açılır.

b) Dosya Okuma

Bir metin dosyasını okumak için StreamReader sınıfını kullanabiliriz.

private void btnDosyaOku_Click(object sender, EventArgs e)
{
    string dosyaYolu = @"C:\deneme.txt";

    if (File.Exists(dosyaYolu))
    {
        using (StreamReader sr = new StreamReader(dosyaYolu))
        {
            string dosyaIcerigi = sr.ReadToEnd();
            MessageBox.Show($"Dosya İçeriği:\n{dosyaIcerigi}");
        }
    }
    else
    {
        MessageBox.Show("Dosya bulunamadı.");
    }
}

  • File.Exists: Dosyanın var olup olmadığını kontrol eder.

c) Dosya Silme

Bir dosyayı silmek için File.Delete yöntemini kullanabilirsiniz.

private void btnDosyaSil_Click(object sender, EventArgs e)
{
    string dosyaYolu = @"C:\deneme.txt";

    if (File.Exists(dosyaYolu))
    {
        File.Delete(dosyaYolu);
        MessageBox.Show("Dosya başarıyla silindi.");
    }
    else
    {
        MessageBox.Show("Silinecek dosya bulunamadı.");
    }
}


d) Dosyaya Veri Eklemek

Var olan bir dosyaya veri eklemek için StreamWriter sınıfını append modunda kullanabiliriz.

private void btnDosyaEkle_Click(object sender, EventArgs e)
{
    string dosyaYolu = @"C:\deneme.txt";

    using (StreamWriter sw = new StreamWriter(dosyaYolu, true))
    {
        sw.WriteLine("Bu veri, mevcut dosyaya eklendi.");
    }

    MessageBox.Show("Dosyaya veri başarıyla eklendi.");
}


e) Dosyanın Var Olup Olmadığını Kontrol Etme

Bir dosyanın varlığını kontrol etmek için File.Exists metodu kullanılır.

private void btnDosyaKontrol_Click(object sender, EventArgs e)
{
    string dosyaYolu = @"C:\deneme.txt";

    if (File.Exists(dosyaYolu))
    {
        MessageBox.Show("Dosya mevcut.");
    }
    else
    {
        MessageBox.Show("Dosya bulunamadı.");
    }
}


3. Dosya İşlemlerini Windows Form’da Uygulama

Windows Form’da dosya işlemlerini daha kullanıcı dostu hale getirmek için bir OpenFileDialog veya SaveFileDialog kontrolü kullanabilirsiniz.

Örnek: Kullanıcıdan Dosya Seçme

Bir dosya seçmek için OpenFileDialog kullanabilirsiniz.

private void btnDosyaSec_Click(object sender, EventArgs e)
{
    OpenFileDialog ofd = new OpenFileDialog();
    ofd.Filter = "Metin Dosyaları|*.txt|Tüm Dosyalar|*.*";

    if (ofd.ShowDialog() == DialogResult.OK)
    {
        string dosyaYolu = ofd.FileName;
        MessageBox.Show($"Seçilen Dosya: {dosyaYolu}");
    }
}


Örnek: Dosya Kaydetme

Bir dosya kaydetmek için SaveFileDialog kullanabilirsiniz.

private void btnDosyaKaydet_Click(object sender, EventArgs e)
{
    SaveFileDialog sfd = new SaveFileDialog();
    sfd.Filter = "Metin Dosyaları|*.txt|Tüm Dosyalar|*.*";

    if (sfd.ShowDialog() == DialogResult.OK)
    {
        string dosyaYolu = sfd.FileName;

        using (StreamWriter sw = new StreamWriter(dosyaYolu))
        {
            sw.WriteLine("Bu dosya, SaveFileDialog kullanılarak kaydedildi.");
        }

        MessageBox.Show("Dosya başarıyla kaydedildi.");
    }
}


4. Dosya İşlemlerinde Dikkat Edilmesi Gerekenler

  1. Dosya Yolu Doğruluğu: Dosya yollarını kontrol etmek için File.Exists metodunu kullanın.
  2. Hata Yakalama: Dosya işlemleri sırasında hata olasılığı yüksektir. Bu yüzden try-catch bloklarını kullanarak hataları yakalayın.
  3. Dosya İzinleri: Dosyaya erişim için gerekli izinlerin olduğundan emin olun.
  4. Kaynak Yönetimi: StreamReader ve StreamWriter gibi nesneler, işlem sonrası kapatılmalıdır. Bu nedenle using kullanımı önerilir.
guest
1 Yorum
Eskiler
En Yeniler Beğenilenler
Inline Feedbacks
View all comments
WANTED_KING
WANTED_KING
3 ay önce

Mükemmel konulardan bir tanesi

1
0
YORUM YAPx