Her uygulamada ihtiyaç duyulan sınıflardan biri olan Directory sınıfıyla dizin kontrolleri dosya listesi alma dizin silme gibi işlemleri bu makalemizde bol örnekli şekilde öğrenmiş olacağız.
Öncelikle Diretory sınıfını kullanacak bilmek için System.IO Library(kütüphanesini) namespace kısmında eklememiz gerekiyor. Sırasıyla Directory sınıfında kullanılan metodları görmeye başlayabiliriz.
Directory.GetFiles
GetFiles metodu directory sınıfında static olarak tanımlandığından instance(örnek) almaya ihtiyaç duymadan direk olarak 1.parametreye dosyaların getirileceği dizin yolu belirtilir eğer sadece belirli dosya uzantılarını listeye çekmek istiyorsanız o zaman 2.parametreye dosya uzantısını belirtmelisiniz alttaki örnekte mevcuttur.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | using System; using System.IO; class Program { static void Main() { //array1 adlı diziye C: dizinindeki tüm dosyaların listesi yerleştirilir. string[] array1 = Directory.GetFiles(@"C:"); //C: dizinindeki tüm .bin uzantılı dosyalar array2 adlı diziye aktarılır string[] array2 = Directory.GetFiles(@"C:", "*.BIN"); // <-- Case-insensitive // Tüm dosyalar consola yazdırılır. Console.WriteLine("--- Dosyalar: ---"); foreach (string name in array1) { Console.WriteLine(name); } // Tüm BIN uzantılı dosyalar consola yazdırılır. Console.WriteLine("--- BIN Dosyaları: ---"); foreach (string name in array2) { Console.WriteLine(name); } } } |
1 2 3 4 5 6 | --- Dosyalar: --- (C: dizinindeki tüm dosyaların listesi) --- BIN Dosyaları: --- (C: dizini içerisindeki tüm .bin, .BIN dosyaları.) Devam etmek için herhangi bir tuşa basınız . . . _ |
Directory.Exists
Exist metoduyla ilk parametresinde belirtmiş olduğunuz klasör yolunun varolup olmadığı ile ilgili boolean bir değer döndürüp ona göre işlem yapmamız için yardımcı olan bir metot’dur. aynı şekilde Exist metodu static bir metod olduğunu için instance almadan sadece namespace kısmına System.IO kütüphanesini eklememiz gerekiyor böylece exists metodunu kullanabilirsiniz yada Systems.IO.Directory.Exists yazarakta kullanabilirsiniz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | using System; using System.IO; class Program { static void Main() { if (Directory.Exists("C:\Users")) { Console.WriteLine("Users"); } if (Directory.Exists("C:\Losers")) { Console.WriteLine("Losers"); } } } |
Sonuç olarak çıktıda görüldüğü üzere Users klasörü C: dizini altında olduğu için ekrana Users yazdı ama C: dizini altında Losers klasörü olmadığı için console ekranına Losers yazmadı.
1 2 3 | Users Devam etmek için herhangi bir tuşa basınız . . . _ |
Directory.CreateDirectory
CreateDirectory metoduyla yeni dizinler oluşturabilirsiniz. Önceki metodlarda olduğu gibi bu metotda static olarak tanımlandığından instance(örnek) almaya gerek yoktur. böylece namespace kısmına System.IO kütüphanesini eklediğimizde Directory.CreateDirectory olarak kullanabiliriz alttaki örneğe gözatıp anlatılanları daha iyi bir şekilde pekiştirebilirsiniz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | using System.IO; class Program { static void Main() { // // C: Dizini altında newfolder adında klasör oluşturuldu // Directory.CreateDirectory("C:\newfolder"); // // C: Dizini altında newfolder2 adında yeni klasör oluşturuldu // Directory.CreateDirectory(@"C:newfolder2"); // // Üstteki işlemde newfolder2 adında klasör oluşturulduğu için bu işlem yapılmayacaktır. // Directory.CreateDirectory(@"C:newfolder2"); } } |
baya bol örnekler varmiş cidden
directory.getdirectoryroot() yaptığı işi string metodları ile yapınız …. yardımcı olur musunuz ………
Güvenlik nedeni ile bazı yazılarınız temizlenmiş bana iletişim sayfasından yazabilirseniz size yardımcı olmaya çalışırım.