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

