Derinlemesine yazılım eğitimleri için kanalımı takip edebilirsiniz...

Directory Sınıfı

Klasör oluşturma,silme,taşıma ve kopyalama gibi işlemleri Directory sınıfı yapmamızı sağlar.Static bir sınıftır.Directory sınıfının tüm elemanları metodlardan oluşmaktadır.Yani property(özellik) mevcut değildir.Directory sınıfını kullanabilmek için, System.IO namespaceini projenize eklemeniz gerekmektedir.

Şimdi klasör varmı yokmu onu kontrol edelim ve klasör oluşturmayı görelim.

            if (!Directory.Exists("C:\\Dosya"))
//Exits metodu ile klasör var mı yok mu kontrol edilir.Varsa True, yoksa False döner.
            {
                Directory.CreateDirectory("C:\\Dosya");
//CreateDirectory metodu ile klasör oluşturulur.
            }

Şimdide bir klasörün alt klasörlerine ulaşmayı görelim.Formumuza ListBox nesnesi ekleyerek, alt klasörleri bu ListBox nesnesinde gösterelim.Ben C:\Dosya dizininin altına, “A”,”B”,”C” ve “D” adında klasörler oluşturdum.Şimdi bunlara ulaşalım.

            string[] AltKlasorler = Directory.GetDirectories("C:\\Dosya");
//GetDirectories metodu ile C:\Dosya klasöründeki alt klasörlere ulaşabiliyoruz.
//Alt klasör isimleri string dizisi olarak geri döndüğünden string dizisine attım.
            for (int i = 0; i < AltKlasorler.Length; i++)
            {
                listBox1.Items.Add(AltKlasorler[i]);
            }


Alt klasörlerin ListBox nesnesinde görüldüğü hali.
GetDirectories metodunun bir diğer overloadındaki özellik ise, belirli şartlara uygun arama işlemi yapabiliriz.
Örnek olarak,

            string[] AltKlasorler = Directory.GetDirectories("C:\\Dosya","A*");
            for (int i = 0; i < AltKlasorler.Length; i++)
            {
                listBox1.Items.Add(AltKlasorler[i]);
            }

yukarıdaki gibi bir işlem uygularsak,isminin ilk harfi “A” olan, gerisi mühim olmayan alt klasör isimlerini getirecektir.Bu durumda ListBox nesnemizde sadece “A” klasörü gözükecektir.


Çalışan programın yolunu, çalıştığı dizini öğrenmek istiyorsak, GetCurrentDirectory() metodunu kullanmalıyız.

MessageBox.Show(Directory.GetCurrentDirectory());

Yukarıdaki kodu çalıştırırsanız eğer, “C:\Users\Gençay\documents\visual studio 2010\Projects\Directory\Directory\bin\Debug” gibi bir yol ile karşılaşabilirsiniz.Demek ki, benim şuanda kodlarımı çalıştırdığım programımın yolu bu yolmuş 🙂


Klasör altındaki dosyaları listeletmek için, GetFiles() metodunu kullanmalıyız.
C:\Dosya klasörünün altına, “E.txt”,”F.txt”,”G.pub” ve “H.zip” isminde dörttane dosya ekliyorum.
Şimdi bu dosyaları okuyup ListBox nesnemize yazdıralım.

            string[] KlasorIcindekiDosyalar = Directory.GetFiles("C:\\Dosya");
            for (int i = 0; i < KlasorIcindekiDosyalar.Length; i++)
            {
                listBox1.Items.Add(KlasorIcindekiDosyalar[i]);
            }

Yukarıdaki kod bloğunu çalıştırdığımız zaman ListBox nesnemizin son görüntüsü aşağıdaki gibi olacaktır.

GetFiles() metodunun bir diğer overloadından da bahsetmek istiyorum.Klasörün içindeki dosyaları listelerken belirli bir şarta göre listeleme yapabiliriz.Örneğin, aşağıdaki kod bloğu, adı ne olursa olsun ancak uzantısı .txt olan dosyaları getirecektir.

            string[] KlasorIcindekiDosyalar = Directory.GetFiles("C:\\Dosya","*.txt");
            for (int i = 0; i < KlasorIcindekiDosyalar.Length; i++)
            {
                listBox1.Items.Add(KlasorIcindekiDosyalar[i]);
            }

Bir klasörün kök dizinini, daha açık şekilde kök sürücüsünü bulmak istediğimizde, GetDirectoryRoot() metodunu kullanıyoruz.

Directory.GetDirectoryRoot("C:\\Dosya")
/*--*/
Directory.GetDirectoryRoot("C:\\Dosya\\A")

Yukarıdaki kodların çıktısı C:\ olacaktır.


Bir üst klasörün adını bulmak için ise, GetParent() metodunu kullanacağız.

Directory.GetParent("C:\\Dosya\\A")

Yukarıdaki kodu yazdırırsak eğer, C:\Dosya yazısını göreceğiz.


Son olarak bilgisayarın sürücülerine erişmeyi görelim.

            string[] TumSuruculer = Directory.GetLogicalDrives();
            for (int i = 0; i < TumSuruculer.Length; i++)
            {
            listBox1.Items.Add(TumSuruculer[i]);
            }

GetLogicalDrives metodu ile bilgisayarınızdaki tüm sürücüleri string[] dizisi şeklinde alabiliyorsunuz.

Sonraki yazılarımda görüşmek üzere…
İyi çalışmalar…

Bunlar da hoşunuza gidebilir...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*