🛡️ 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