Merhabalar, C# FileNotFoundException – Nedenleri dersim ile Exceptions derslerime devam ediyorum. Önceki dersimde C# DirectoryNotFoundException – Nedenleri konusuna değinmiştik. Bu dersimizde FileNotFoundException özel durumuna değineceğim. DirectoryNotFoundException gibi bu özel durumunda kullanım şekli hakkında bir örnek bulamadım. Adından da anlaşılacağı gibi bir dosyanın bulunamadığında ortaya çıkan özel durumdur.
C# FileNotFoundException – Nedenleri
Devralma : Object > Exception > SystemException > IOException > FileNotFoundException
C# FileNotFoundException – Nedenleri
Bu özel durum, bir dosya yolunun (path) geçersiz olması durumunda çıkar. Yani verdiğimiz yoldaki klasörün olmaması durumunda yaşarız. Böyle bir özel durum olduğundan önceki derslerimdeki gibi nasıl kullanılır? sorusuna cevap verecek bir örnek bulamadım. Mantıksız yollar ile örnekler elbette yapılabilir ancak bu özel durumun ortaya çıkması mantığı ile aynı mantıkta bir işlem aklıma gelmedi.
DirectoryNotFoundException özel durumu gibi görünse de aslında farklıdır. Eğer verilen yol değişkeninde hem dosya hem klasör yok ise öncelikle DirectoryNotFoundException hatası verilir. Eğer klasörler mevcut, dosya yok ise o zaman FileNotFoundException özel durumu döner.
Bu özel durumun tipik bir çıktısı vardır.
‘XXXXX’ ‘dosyası bulunamadı.
Aşağıdaki örnekte bu özel durumu çıkartalım ve kontrol edelim.
#region FileNotFoundException Çıkarma ve Yakalama Örneği private void btn_FileNotFoundException_Click(object sender, EventArgs e) { string path = "C:\\asd.txt"; string path2 = "D:\\asd.txt"; try { File.Copy(path, path2); } catch (FileNotFoundException ex) { txt_cikti.Text += ex.GetType().Name + ":" + ex.Message; } } #endregion { File.Copy(path,path); } catch (FileNotFoundException ex) { txt_cikti.Text += ex.GetType().Name + ":" + ex.Message; } } #endregionNOT: Dersi için hata çıkarmaya çalışırken, File.Delete() metodunun dosya olmasa bile exception dönmediğini fark ettim. :D
Burada C dizinindeki asd.txt adlı D dizinine kopyalamaya çalıştık. Ancak böyle bir dosya olmadığı için FileNotFoundException özel durumu dönecektir.
C# FileNotFoundException – Nedenleri dersimiz de bu kadardı arkadaşlar.
Tüm Exceptions derslerime bağlantıdan ulaşabilirsiniz.
C Sharp Eğitim Seti eğitimi sayfasına gitmek için tıklayınız.
Derslerime özel olarak hazırladığım Github Projeme buradan ulaşabilirsiniz… Bu dersim Github projemde yerini almıştır. Tüm Exception adı altında eklediğim dersleri Github projeme ekleyeceğim.
Sağlıcakla ve takipte kalın.