13.3 – Dosya Yoksa Oluşturma Kontrolü


🛡️ 13.3 – Dosya Yoksa Oluşturma Kontrolü


🎯 

Amaç:

Kullanıcı uygulamayı çalıştırdığında ya da veri okumaya kalktığında, dosya yoksa hata vermemesi için:

  • Dosya var mı kontrolü yapılacak
  • Yoksa otomatik olarak oluşturulacak

Bu kontrol özellikle uygulama ilk kez çalıştırıldığında hayati önemdedir.


🔧 

Kullanılan Yöntem:

if (!File.Exists("dosya.txt"))
{
    File.Create("dosya.txt").Close();
}

📌 Close() çağrısı, File.Create()’in dosyayı kilitlemesini önler.


🧪 

Örnek 1: Uygulama Başlangıcında Dosya Kontrolü

private void Form1_Load(object sender, EventArgs e)
{
    if (!File.Exists("notlar.txt"))
    {
        File.Create("notlar.txt").Close();
        MessageBox.Show("notlar.txt dosyası oluşturuldu.");
    }
}

🧪 

Örnek 2: Dosya Yoksa Yazmadan Önce Oluştur

private void btnKaydet_Click(object sender, EventArgs e)
{
    string dosyaYolu = "kayitlar.txt";

    if (!File.Exists(dosyaYolu))
    {
        File.Create(dosyaYolu).Close();
    }

    using (StreamWriter sw = new StreamWriter(dosyaYolu, true))
    {
        sw.WriteLine("Yeni kayıt: " + DateTime.Now);
    }

    MessageBox.Show("Veri dosyaya kaydedildi.");
}

🧪 

Örnek 3: Log Dosyası Otomatik Oluşturulsun

public void LogYaz(string mesaj)
{
    string logDosya = "uygulama_log.txt";

    if (!File.Exists(logDosya))
        File.Create(logDosya).Close();

    using (StreamWriter sw = new StreamWriter(logDosya, true))
    {
        sw.WriteLine($"{DateTime.Now} - {mesaj}");
    }
}

🧪 

Örnek 4: Klasör Var mı Kontrolü + Dosya Oluşturma

string klasorYolu = "Veri";
string dosyaYolu = Path.Combine(klasorYolu, "yedeğim.txt");

if (!Directory.Exists(klasorYolu))
    Directory.CreateDirectory(klasorYolu);

if (!File.Exists(dosyaYolu))
    File.Create(dosyaYolu).Close();

🧪 

Örnek 5: Buton ile Kullanıcı Dosya Varlığını Sorgulasın

private void btnDosyaKontrol_Click(object sender, EventArgs e)
{
    string dosya = "deneme.txt";

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

🧠 

İpucu: Dosyaları Program Başlangıcında Kontrol Etmek Faydalıdır

  • Hem veri kaybını önler
  • Hem kullanıcıya hata göstermeden işlem yapılmasını sağlar
  • İyi yazılmış bir uygulamada File.Exists kontrolü standart hale getirilmelidir

Leave a Reply