Bu örneğimizde DirectoryInfo, DriveInfo sınıfları yardımıyla listbox’lara disklerinizi seçmiş olduğunuz diske ait klasörleri ve seçmiş olduğunuz klasörlere ait dosyaları görüntüleyen küçük bir uygulama yapacağız.
Kullanacağımız DirectoryInfo ve DriveInfo sınıflarında diskin ne kadar boş alanı kaldığını, toplam boyutunu, disk türü, seçili olan klasörün son erişim tarihi, son değişiklik tarihi, tam yolu, uzantısı ve o dosyanın halen diskte olup olmadığı gibi bilgilerle beraber kullanabileceğiniz daha fazla property ve metod bulunmaktadır gözatmanızı öneririm.
Örneğimize geçecek olursak öncelikle Sürücü listesini “lstboxDrive” adlı ListBox nesnemize ebkliyoruz. Diskleri Listbox’a ekleme işini formun load’ında yapıyoruz
1 2 3 4 5 6 7 | private void Form2_Load(object sender, EventArgs e) { //yükleme işleminde GetDrives() metodundan yararlanarak //tüm sürücüleri forearch döndüsüyle listbox'a ekliyoruz. foreach (var drive in DriveInfo.GetDrives()) lstboxDrive.Items.Add(drive.); } |
“lstboxDrive” adlı sürücülerimizin bulunduğu ListBox nesnemizden bir kayıt seçildiğinde o sürücüye ait klasörleri “lstboxDirectory” adlı Listbox nesnemize ekleyen kod ise şu şekildedir.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | //listbox nesnemizi temizliyoruz lstboxDirectory.Items.Clear(); try { var drive = (DriveInfo) lstboxDrive.SelectedItem; foreach (var dir in drive.RootDirectory.GetDirectories()) { lstboxDirectory.Items.Add(dir); } } catch (Exception ex) { MessageBox.Show("Bir hata oluştu: " + ex.Message); } |
Şimdi aynı işlemleri ise “lstboxDirectory” adlı klasörlerimizin listesinin bulunduğu Listbox nesnesinden bir öğe seçildiğinde “lstboxFiles” adlı ListBox nesnemize seçili olan klasöre yani dizine ait dosyalar eklenecektir. Bu ekleme işlemini yapan kodlar ise şu şekildedir.
1 2 3 4 5 6 7 8 9 10 11 12 13 | lstboxFiles.Items.Clear(); try { var dir = (DirectoryInfo)lstboxDirectory.SelectedItem; foreach (var file in dir.GetFiles()) { lstboxFiles.Items.Add(file); } } catch (Exception ex) { MessageBox.Show("Bir hata oluştu: " + ex.Message); } |