C# Klasör ve Dosya İşlemleri

Merhabalar ,

Bu yazımda genel olarak C# ta Dosya ve Klasör işlemleri nasıl yapılır, dosya klasör oluşturma , okuma yazma silme ,taşıma v.s. işlemleri hakkında hem kendime hatırlatıcı not lar hemde sizlerin de faydalanabileceği şekilde örnekler ile açıklamaya çalışacağım.

Örnek Projeye github hesabımdan ulaşabilirsiniz : https://github.com/salihseker/C-DosyaKlasorIslemleri  Takip etmeyi unutmayın 🙂

 

[raw] [/raw]

 KLASÖR İŞLEMLERİ

Öncelikle Directory sınıfı ile ilgili işlemleri inceleyeceğiz , Directory sınıfı System.IO da bulunan Klasör işlemlerini yapmamıza yarayan sınıftır .Bu nedenle projemizin using kısmına using System.IO; şeklinde sınıfımızı ekliyoruz.

//www.salihseker.com - Salih ŞEKER

using System.IO;

//

 

Klasör Oluşturma : 

//www.salihseker.com - Salih ŞEKER
   
private static void KlasorOlusturmaIslemi()
        {
            Directory.CreateDirectory(@"C:\Salih\DirectorySinifi");//C sürücüsü altında klasör oluşturma
            Directory.CreateDirectory(AppDomain.CurrentDomain.BaseDirectory + @"Salih\DirectorySinifi");//Projenin Exe sinin bulunduğu kısımda klasör oluşturma.
        }

Klasör Varlık Kontrolü :

//www.salihseker.com - Salih ŞEKER

private static void KlasorKontrolu()
        {
            bool Kontrol = Directory.Exists(@"C:\Salih\DirectorySinifi");//Exists klasör yolu verilen dizin i kontrol edip true veya false döner
            if (Kontrol)
            {
                Console.WriteLine("Belirtilen dizinde klasör mevcut");
            }
            else
            {
                Console.WriteLine("Belirtilen dizinde klasör bulunamadı");
            }
        }

Uygulamanın çalıştığı klasörü bulma GetCurrentDirectory:

//www.salihseker.com - Salih ŞEKER 

private static void GetCurrentDirectory()
        {
            string path = Directory.GetCurrentDirectory();//Exe nin bulunduğu dizin i getirme
            Console.WriteLine(path);
            Directory.SetCurrentDirectory(@"C:\Salih");//Uygulama çalışırken uygulama çalışma yolunu değiştirme
            path = Directory.GetCurrentDirectory();
            Console.WriteLine(path);
        }

DirectoryInfo Kullanımı:

Verilen dizindeki klasör hakkında adı , oluşturma tarihi , tam yolu , alt klasör oluşturma , alt klasör bilgileri v.s. Klasör hakkında bilgileri öğrenmemizi sağlar.

Kullanımı :  DirectoryInfo DI = new DirectoryInfo(@”C:\Salih”); şeklindedir.

//www.salihseker.com - Salih ŞEKER

private static void DirectoryInfoKullanımı()
        {
            DirectoryInfo DI = new DirectoryInfo(@"C:\Salih");
            
            Console.WriteLine("Bulunduğu dizin adı :" + DI.Parent.FullName);
            Console.WriteLine("Oluşturma Tarih :" + DI.CreationTime.ToString("dd.MM.yyyy hh:mm"));
            Console.WriteLine("Tam Yol Bilgisi : " + DI.FullName);
            Console.WriteLine("Son Erişim Tarih" + DI.LastAccessTime.ToString("dd.MM.yyyy hh:mm"));
            DI.CreateSubdirectory("AltKlasor");

            DirectoryInfo[] Liste = DI.GetDirectories();//Klasör içindeki alt klasörleri listesi 
            foreach (var item in Liste)
            {
                Console.WriteLine(item.FullName);
            }
        }

[raw] [/raw]

Klasör Taşıma:

//www.salihseker.com - Salih ŞEKER
  
private static void KlasorTasima()
        {
            Directory.Move(@"C:\Salih\A", @"C:\Seker\A");
        }

Klasör Silme:

//www.salihseker.com - Salih ŞEKER

private static void KlasorSilme()
        {
            Directory.Delete(@"C:\Seker",true);//Klasör içi dolu olsa dahi silinmesi için ikinci parametre true olmalı.
        }

Sistemdeki Sürücülerin Listesini öğrenme (C:,D:) gibi : 

//www.salihseker.com - Salih ŞEKER

private static void SistemSurucuListesi()
        {
            string[] SistemSuruculeri = Directory.GetLogicalDrives();
            foreach (var item in SistemSuruculeri)
            {
                Console.WriteLine("Sürücü Adı : " + item);
            }
        }

Klasör içindeki klasörlerin listesi:

//www.salihseker.com - Salih ŞEKER

private static void KlasorListele()
        {
            string[] Liste = Directory.GetDirectories(@"C:\Program Files\");
            foreach (var item in Liste)
            {
                Console.WriteLine(item);
            }

        }

 

DOSYA İŞLEMLERİ 

Dosya işlemleri için klasör işlemleri gibi System.IO kütüphanesini using kısmında uygulamamıza ekliyoruz , Dosya işlemleri için File sınıfını kullanacağız.

FileStream, Stream ana soyut sınıfı kullanılarak genişletilmiş, belirtilen kaynak dosyalar üzerinde okuma/yazma/atlama gibi operasyonları yapmamıza yardımcı olan bir sınıftır. Bu sınıf sayesinde senkron ve asenkron olarak okuma/yazma operasyonlarını gerçekleştirebiliriz.

[raw] [/raw]

Dosya Oluşturma:

//www.salihseker.com - Salih ŞEKER 

private static void DosyaOlusturma()
        {
            FileStream fs = File.Create(@"C:\Salih\Merhaba.txt");//Salih Klasörü altında Merhaba isminde bir txt oluşturulur.
            fs.Close();//Oluşturulan dosyayı kapatmamız gerekir. yoksa txt dosyasını açmaya çalıştığımızda hata alırız.

        }

Dosya Kontrolü :

yolu verilen dizinindeki dosyanın olup olmadığı kontrolünü yapma işlemi.

//www.salihseker.com - Salih ŞEKER

private static void DosyaKontrolIslemleri()
        {
            bool Kontrol = File.Exists(@"C:\Salih\Merhaba.txt");
            if (Kontrol)
            {
                Console.WriteLine("Dosya sistemde mevcut.");
            }
            else
            {
                Console.WriteLine("Dosya sistemde bulunamadı.");
            }

        }

Dosyaya veri yazma:

yazma işlemleri için System.IO nun altsınıfı olan StreamWriter sınıfını kullanacağız.

//www.salihseker.com - Salih ŞEKER

private static void DosyaVeriYaz()
        {
            StreamWriter sw = new StreamWriter(@"C:\Salih\Merhaba.txt");
            sw.WriteLine("Merhaba Dünya!");
            sw.Close();
        }

[raw] [/raw]

Dosyadaki veriyi okuma:

okuma işlemi için System.IO nun altsınıfı olan StreamWriter sınıfını kullanacağız.

//www.salihseker.com - Salih ŞEKER

private static void DosyaVeriOku()
        {
            StreamReader sr = new StreamReader(@"C:\Salih\Merhaba.txt");
            string Veri = sr.ReadToEnd();
            sr.Close();
            Console.WriteLine(Veri);
            Console.ReadLine();
        }

Dosya Taşıma:

//www.salihseker.com - Salih ŞEKER

private static void DosyaTasima()
        {
            File.Move(@"C:\Salih\Merhaba.txt", @"C:\Seker\Merhaba.txt");//Dosya kopyalanmaz komple taşınır.
        }

Dosya Kopyalama:

//www.salihseker.com - Salih ŞEKER

private static void DosyaKopyalama()
        {
            for (int i = 0; i < 5; i++)//5 kere Kopyalamak için Merhaba1.txt,Merhaba2.txt,...,Merhaba5.txt
            {
                string DosyaIsim = "Merhaba" + i.ToString() + ".txt";
                File.Copy(@"C:\Salih\Merhaba.txt", @"C:\Salih\Tasinan\" + DosyaIsim);
            }

        }

[raw] [/raw]

Dosya Silme:

//www.salihseker.com - Salih ŞEKER

private static void DosyaSilme()
        {
            File.Delete(@"C:\Salih\Tasinan\Merhaba1.txt");
            
        }

Dosya Listeleme:

//www.salihseker.com - Salih ŞEKER

private static void DosyaListele()
        {
            string[] Dosyalarim = Directory.GetFiles(@"C:\Salih\Tasinan\");
            for (int i = 0; i < Dosyalarim.Length; i++)
            {
                Console.WriteLine("Dosya Yolu:" + Dosyalarim[i]);
            }

            Console.ReadLine();

        }

FileInfo Kullanımı : 

Verilen dizindeki dosya hakkında adı , oluşturma tarihi , tam yolu , uzantısı , bulundu klasör v.s. dosya hakkında bilgileri öğrenmemizi sağlar.

//www.salihseker.com - Salih ŞEKER
 private static void FileInfoKullanımı()
        {
            FileInfo FI = new FileInfo(@"C:\Salih\Tasinan\Merhaba0.txt");


            DirectoryInfo DI = FI.Directory;//Bulunduğu klasör.
            FileInfo[] DirectoryInfoList = DI.GetFiles();//dosyanın bulunduğu klasördeki dosyaların listesi.

            Console.WriteLine("Dosya Olusturma Zamani : " + FI.CreationTime.ToString("dd.MM.yyyy hh:ss"));
            Console.WriteLine("Tam Yol Bilgisi : " + FI.FullName);
            Console.WriteLine("Dosya Uzantisi : " + FI.Extension);
            Console.WriteLine("Byte Uzunluk : " + FI.Length.ToString());
            Console.WriteLine("Dosya Adi : " + FI.Name);
            Console.WriteLine("Klasor Adi : " + FI.DirectoryName);
            foreach (var item in DI.GetFiles())
            {
                Console.WriteLine("Klasör --> "+ FI.DirectoryName + " - Dosya Adi -->" + item.Name);
            }

            Console.ReadLine();

        }

Bu yazımda burada sonlanmaktadır , basit el altında bulunması gereken , dosya ve klasör işlemleri yaparken yardımcı olacağını düşünüyorum , umarım faydalı olmuştur.

İyi Çalışmalar 🙂 — Salih ŞEKER

Print Friendly, PDF & Email

You may also like...

Bir cevap yazın