C# Basit Dosya ve Klasör İşlemleri

Önce klasör oluşturmaya bakalım. CreateDirectory metodu geriye DirectoryInfo döndürür. Yani oluşturduğu klasörün bilgilerini. Ayrıca 7 tip hata döndürebilir. Detaylı bilgi için tıklayın. Şimdi örneğimizi yazalım.
Masaüstünde bir klasör oluşturalım ve oluşturduğumuz klasörün tam yolunu ekrana basalım.

String path = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + @"\TestDosya";
DirectoryInfo _info = Directory.CreateDirectory(path);
Console.WriteLine(_info.FullName);

Dosyamızı oluşturduktan sonra şimdi de taşıma işlemini gerçekleştirelim. Taşıma işleminde şu noktayı unutmamak gerek. Taşıma işlemi yapılacak yerde aynı isimde bir klasör olmayacak. Yoksa IOException hatası alırsınız. Neyse metod iki parametre alır. Birisi taşınacak klasör, diğeri ise taşınacağı yer. Taşınacağı yer kısmında klasörün ismini değiştirerek taşıma işlemi gerçekleştirebilirsiniz. Aşağıdaki kodda Masaüstündeki bir klasörü aynı isimle Resimlerime taşıyoruz. Ayrıca bu işlemi yaparken Exist metodundan da bahsedeyim. Bu metod klasörün var olup olmadığını kontrol ediyor. Eğer varsa true, yoksa false döndürüyor.

String tasinanDizin = Environment.GetFolderPath(Environment.SpecialFolder.Desktop) + @”\TestDosya”;
String tasinacagiYer = Environment.GetFolderPath(Environment.SpecialFolder.MyPictures) + @”\TestDosya”;
if (Directory.Exists(tasinanDizin))
        Directory.Move(tasinanDizin, tasinacagiYer);

Taşıma işlemi bu kadar basit. Ama taşıma işleminde hata çıkması çok olası bir durum. O yüzden mutlaka işlemi try-catch içinde yapmalısınız. Şimdi silme işlemini yapalım. Resimlerime taşıdığımız klasörü silelim. Taşıma işleminde yaptığımız gibi önce dosyanın varlığından emin oluyoruz ve sonra silme işlemini gerçekleştiyoruz.

String silinecekDosya = Environment.GetFolderPath(Environment.SpecialFolder.MyPictures) + @”\TestDosya”;
if (Directory.Exists(silinecekDosya))
    Directory.Delete(silinecekDosya);

Klasör ile ilgili genel işlemleri tamamladıktan sonra şimdide yolunu verdiğimiz bir klasörün veya mantıksal sürücülerin içindeki dosyaların ve klasörlerin listesini alalım. C:\ sürücüsündeki dosyaları getirelim önce.

StringBuilder builder = new StringBuilder();
foreach (var directory in Directory.GetDirectories(@”C:\”))
builder.AppendLine(directory);
Console.WriteLine(builder.ToString());

Klasörleri listeledik. Şimdi de aynı yöntem ile dosyaları alalım.

StringBuilder builder = new StringBuilder();
foreach (var directory in Directory.GetFiles(@”C:\”))
    builder.AppendLine(directory);
Console.WriteLine(builder.ToString());

Benim C:\ sürücümde .sys uzantılı dosyaların fazlalığı nedeniyle ben sadece bu uzantıdaki dosyaların görünmesini istiyorum. Kodumuzda ufak bir değişiklik yaparak bunu gerçekleştirebiliriz.

StringBuilder builder = new StringBuilder();
foreach (var directory in Directory.GetFiles(@”C:\”, “*sys”))
    builder.AppendLine(directory);
Console.WriteLine(builder.ToString());

Advertisements

One thought on “C# Basit Dosya ve Klasör İşlemleri

  1. Pingback: C# Basit Dosya ve Klasör İşlemleri | Serdar Altundal

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s