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
- Dosya Yolu Doğruluğu: Dosya yollarını kontrol etmek için
File.Exists
metodunu kullanın. - Hata Yakalama: Dosya işlemleri sırasında hata olasılığı yüksektir. Bu yüzden
try-catch
bloklarını kullanarak hataları yakalayın. - Dosya İzinleri: Dosyaya erişim için gerekli izinlerin olduğundan emin olun.
- Kaynak Yönetimi:
StreamReader
veStreamWriter
gibi nesneler, işlem sonrası kapatılmalıdır. Bu nedenle using kullanımı önerilir.
Mükemmel konulardan bir tanesi