Harun Özer


Proje veya dijital katalog yaptırmak için
iletişim formu doldurabilirsiniz..

<< c#.net Extension method tanımlamak | FCKeditor internet explorer 9 bug>>

.net klasör işlemleri - System.IO

Yazar harunozer 18 March 2012

.net klasör işlemleri - System.IO net de dosya ve klasör işlemleri System IO namespace i altındaki classlar ile yapılır.Klasör oluşturmak,silmek,yazmak,özelliklerine erişmek, olup olmadığını kontrol etmek gibi işlemler bu namespace altındaki sınıflar yardımı ile yapılabilir.

Bu yazıda Directory,DirectoryInfo sınıflarını ve bazı metodlarını öğreneceğiz.

System.IO namespacesi içinde klasör işlemleri için sık kullanılan Directory adında static sınıf bulunur.Bu sınıf DirectoryInfo sınıfındaki bazı işlemleri yapabilir.

    string Path = @"c:\SystemIO\TestDirectoryCreate"

    Directory.CreateDirectory(Path);   

    DirectoryInfo dInf = new DirectoryInfo(Path);    

    dInf.Create();

 

Yukarıdaki 2 kod da aynı işi yapar. c:\ dizini altında SystemIO klasörü varsa altına TestDirectoryCreate klasörünü oluşturur, eğer yoksa SystemIO  klasörünü de oluşturur.Klasörler varsa hata vermez ve klasörleri yeniden oluşturmaz.

NOT:Path değişkenine değer atanırken başındaki @ işareti, \ karakterlerinin özel karakter olarak alınmasını engellemek için yazılmıştır. Değer "c:\\SystemIO\\TestDirectoryCreate" şeklinde de tanımlanabilirdi. Path c:\ şeklinde açıkca yazılmayıp sadece klasör ismi olarak yazılırsa exe nin çalıştığı klasörün içi baz alınır.

Bir klasörün olup olmadığını kontrol etmek için DirectoryInfo sınıfının veya Directory sınıfının Exists metodları kullanılabilir.

    if (Directory.Exists(Path))        
         Console.WriteLine("Klasör Var");

    if (dInf.Exists)        
        Console.WriteLine("Klasör Var");
 
DirectoryInfo sınıfı kullanılarak aşağıdaki gibi klasör özelliklerine erişilebilinir.
 
    Console.WriteLine("Klasör Yolu:" + dInf.FullName);    
    Console.WriteLine("Klasör Adı:" + dInf.Name);    
    Console.WriteLine("Oluşturulma Zamanı:" + dInf.CreationTime.ToString());    
    Console.WriteLine("Son Erişim Zamanı:" + dInf.LastAccessTime.ToString());
 
DirectoryInfo sınıfının MoveTo metodu ile klasör (alt dosya ve klasörler ile) başka bir hedefe taşınabilir.
 
    string FolderPath = @"c:\SystemIO\TestDirectoryCreate\1\1_1";    
    Directory.CreateDirectory(FolderPath);
 
    string Kaynak = @"c:\SystemIO";    
    string Hedef = @"c:\SystemIO2";
    DirectoryInfo dInfo = new DirectoryInfo(Kaynak);
    dInfo.MoveTo(Hedef); 
           
Yukarıdaki kod bloğu önce FolderPath yolundaki klasörleri oluşturur. dInfo.MoveTo(Hedef) kodu ile de c:\SystemIO klasörü c:\SystemIO2 adında taşınır.
 
DirectoryInfo sınıfı ile klasörün içindeki klasörlerin veya dosyaların listesi alınabilir.Bütün dosya veya klasörlerin listesi alınabilineceği gibi isme göre de alınabilir.Klasörlerin listesini almak için GetDirectories metodu kullanılır.Bu metod sadece verdilen klasörün içindeki klasörlerin listesini verir onların altındaki klasörlerin listesini vermez. Parametre olarak kriter de verilebilir.Bu metod geriye DirectoryInfo[] gönderir.
 
    string Path = @"c:\SystemIO2";    
    DirectoryInfo dirInf = new DirectoryInfo(Path);    
    DirectoryInfo[] PathFolders = dirInf.GetDirectories();
    //DirectoryInfo[] PathFolders = dirInf.GetDirectories("test*");  test ile başlayan klasörlerin listesini verir.
 
 
Yukarıdaki gibi klasör içindeki dosyaların listesini GetFiles metodu ile FileInfo[] olarak alabiliriz.Bu metodda da parametre olarak kriter verilebilinir.
 
    string Path = @"c:\SystemIO2";
    DirectoryInfo dirInf = new DirectoryInfo(Path);    
    FileInfo[] PathFiles = dirInf.GetFiles();
    //FileInfo[] PathFiles = dirInf.GetFiles("*.txt");   txt uzantılı dosyaların listesini verir
 

Tam Sayfa
Tags System.IO, .net,
Kategoriler c#.net
İşlemler
Bu Makale 1  Kez Beğenildi.
İsim :    
e-Mail :    
Web Site :  
İmage :  
Güvenlik Kodu :  

Güvenlik Resmi
Resmi Yenile
    
Yorum :  
Tasarım Desenleri ve Mimarileri