Merhaba arkadaşlar,
Bu yazımızda dosya ve klasör arama işlemleri hakkında bir inceleme yapacağız. Uygulamamızda istenen dosya veya istenen bir dosya uzantısını belirtilen yolda kaç adet varsa tamamını buldurabiliriz. Kısaca istenen dosyayı veya istenen uzantıdaki dosyaları bulan bir uygulama yazacağız. İsteğe göre Alt klasörleri de tarayabilecek.
Haydi kodlama kısmına geçelim!
Öncelikle gerekli kütüphanelerimizi tanımlayalım.
using System.IO;
Bu uygulamada Input-Output işlemlerini kullanacağımızdan IO kütüphanesi işimize yarayacak.
Uygulamamıza bir adet listBox , bir adet checkBox ve bir adet button ekleyerek tasarlayalım. listBox bize sonuçları görüntülerken yardımcı olacak. checkBox ise Alt klasörleri de tarayıp taramak istemediğimizi sorgulayacak. Eklediğimiz button’un içine aşağıdaki kodları eklersek uygulamamız için doğru bir başlangıç olacaktır.
string[] dosya; String yol = @"C:/"// *1 dosya = Directory.GetFiles(yol, "dosya.uzantı");// *2 for (int i = 0; i < 1; i++) { listBox1.Items.AddRange(dosya); if (checkBox1.Checked == true)// *3 { string[] dizin; dizin = Directory.GetDirectories(yol); for (int s = 0; s < dizin.Length; s++) { altdizinarama(dizin[s]); } } if (listBox1.Items.Count == 0) { listBox1.Items.Add("ARANILAN DOSYA TÜRÜ BULUNAMADI!"); } }
*1 = Aranmasını istediğimiz adres.
*2 = Aranmasını istediğimiz dosyanın uzantısı ile birlikte tam adı. Eğer bir dosya değilde belirli bir uzantı aramak istiyorsanız arama gerekli alana “*.uzantı” şeklinde yazmalısınız.
*3 = Alt Klasörlerinin de aranmasını istiyorsak checkBox seçili olmalı.
Ve şimdi de bu fonksiyon eklemeliyiz ki alt dizin araması yapabilelim.
private void altdizinarama(String yol) { string[] dosya; dosya = Directory.GetFiles(yol, "dosya.uzantı"); for (int i = 0; i < 1; i++) { listBox1.Items.AddRange(dosya); if (checkBox1.Checked == true) { string[] dizin; dizin = Directory.GetDirectories(yol); for (int s = 0; s < dizin.Length; s++) { altdizinarama(dizin[s]); } } } }
Bu fonksiyon bize alt dizinleri de aratabilmemizi sağlayacak. Böylece uygulamamız tamamlanmış oluyor.
Teşekkürler!