Bu yazıda c# ile klasör oluşturma, dosya oluşturma, dosyanın özel bilgilerini görme, metin belgesi oluşturup ve üzerine yazma okuma gibi işlemlere göz atacağız.
Bu işlemleri yapabilmek için System.IO kütüphanesini kullanacağız.
Klasör Fonksiyonları
Directory.CreateDirectory
Directory sınıfını kullanarak klasör oluşturabiliriz. Bunun için oluşturulacak yerin konumunu vermemiz gerekiyor. Ben masaüstümde oluşturmayı tercih ettim. Path içinde neden \\ kullandık diye soracak olursanız bunu Kaçış Karakterleri adı altındaki yazımda görebilirsiniz.
private void button2_Click(object sender, EventArgs e)
{
string path = "C:\\Users\\angel\\Desktop\\testfolder";
Directory.CreateDirectory(path);
}
Directory.Delete
Var olan bir klasörü silmek için kullanılır.
string path = "C:\\Users\\angel\\Desktop\\testfolder";
Directory.Delete(path);
Directory.Exist
Konumu belirtilen path’deki klasörün varlığının kontrolü için kullanılır.
string path = "C:\\Users\\angel\\Desktop\\testfolder";
bool isExist=Directory.Exists(path);
Directory.GetDirectories
Belirtilen konumdaki tüm klasörleri listelemek için kullanılır. String dizi döndürür.
string path = "C:\\Users\\angel\\Desktop";
string[] subFolders = Directory.GetDirectories(path);
listBox1.Items.AddRange(subFolders);
Directory.GetFiles
Belirtilen konumdaki tüm dosyaları listelemek için kullanılır. String dizi döndürür.
string path = "C:\\Users\\angel\\Desktop";
string[] subFolders = Directory.GetFiles(path);
listBox1.Items.AddRange(subFolders);
Directory.GetFileSystemEntries
Belirtilen klasörün içerisindeki ikinci parametre ile belirtilen dosyayı arar bulursa yoluyla beraber ismini döndürür. Bu fonksiyonda joker karakterler kullanarak sadece txt veya sadece exe vs. bulunabilir.
string[] root = Directory.GetFileSystemEntries("C:\\Program Files (x86)", "*.exe");
listBox1.Items.AddRange(root);
Dosya Fonksiyonları
FileInfo Sınıfı
Dosya fonksiyonları için c#’da tanımlanmış FileInfo sınıfını kullanacağız. Bu kısım çok basit, açıklama yapmadan geçiyorum. Kodlardan anlarsınız zaten.
string path = "C:\\Users\\angel\\Desktop\\test";
FileInfo fileInfo = new FileInfo(path);
MessageBox.Show(fileInfo.FullName);
MessageBox.Show(fileInfo.Name);
MessageBox.Show(fileInfo.Directory.ToString());
MessageBox.Show(fileInfo.Length.ToString());
MessageBox.Show(fileInfo.CreationTime.ToString());
MessageBox.Show(fileInfo.LastWriteTime.ToString());
Stream Sınıfı
Dosya işlemleri StreamReader sınıfı ile de yapılabilmektedir. Stream Reader sınıfı daha çok tercih edilir, daha çok kapsamlıdır.
StreamReader.ReadLine
Dosyadan satır okumak için kullanılır. Dosyayı okumadan önce varlık kontrolü yapmayı unutmayalım.
string path = "C:\\Users\\angel\\Desktop\\test\\test.txt";
StreamReader streamReader = new StreamReader(path);
while (!streamReader.EndOfStream)
{
MessageBox.Show(streamReader.ReadLine());
}
Ek olarak stream.ReadToEnd() diyip tüm metin belgesini tek seferde okuyup onu diziye atabilirsiniz. Metni ayırmak için split işlemi vs uygulayıp ihtiyacınız olan kısımları elde edebilirsiniz.
StreamWriter
Dosyaya yazma işlemleri için Stream Writer sınıfını kullanıyoruz.
string path = "C:\\Users\\angel\\Desktop\\test\\test.txt";
StreamWriter streamWriter = new StreamWriter(path);
streamWriter.WriteLine("Stream Writer kullanarak yeni satır yazdım.");
streamWriter.Close();
Burada önemli nokta işimiz bitinde dosyayı kapatmak, yoksa kaydetme işlemi tamamlanamaz. Ek olarak oluşturduğumuz StreamWriter’a ikinci parametre olarak TRUE verirsek dosyaya kaldığı yerden yazar, eski kısımları silmez. Lütfen bu kısıma dikkat edelim 🙂
Yazımızın sonunda geldik, yine çok teoriye girmeden yüzeysel ve anlaşılacak şekilde anlatmaya çalıştım umarım beğenmişsinizdir. Sonraki yazılarda görüşmek üzere…