Bu yazımda C#’ta dosya ve klasör işlemlerini gerçekleştirmek için gerekli olan kütüphane, sınıf ve metotların kullanımını örnekler üzerinden detaylı olarak inceleyeceğiz. C# dilinde tüm girdi ve çıktı işlemlerini gerçekleştirmek üzere System.IO kütüphanesi kullanılmaktadır. Bu bakımdan klasör açma-silme-taşıma, dosya oluşturma, dosya içerisine veri ekleme-silme, dosyadan veri okuma gibi işlemler yapmak için mutlaka bu namespace’i projemize eklememiz gerekir.
C#’da Klasör İşlemleri
C#’da klasör işlemleri System.IO isim uzayında bulunan Directory sınıfı ile yapılmaktadır.
-
CreateDirectory metodu ile klasör oluşturma:
1 2 3 4 |
Directory.CreateDirectory("YeniKlasör"); //Programın çalıştığı dizine YeniKlasör isimli bir klasör oluşturur. Directory.CreateDirectory(@"C:\YeniKlasör"); //C: dizini altına YeniKlasör isminde bir klasör oluşturur. |
-
Delete metodu ile klasör silme:
1 2 3 4 |
Directory.Delete(@"C:\YeniKlasör"); //C: dizini altındaki içerisi boş olan YeniKlasör’ü siler. Directory.Delete(@"C:\YeniKlasör",true); //C: dizini altındaki içerisi boş veya dolu fark etmez YeniKlasör’ü siler. |
-
Klasör hakkında detaylı bilgi edinme
1 2 3 4 5 6 7 8 9 |
DateTime olusturmaZamani=Directory.GetCreationTime("YeniKlasör"); MessageBox.Show(olusturmaZamani.ToString()); //Belirtilen klasörün oluşturulduğu tarih ve zamanı gösterir. DateTime sonErisimZamani = Directory.GetLastAccessTime("YeniKlasör"); MessageBox.Show(sonErisimZamani.ToString()); //Klasöre en son erişim sağlandığı zamanın bilgisini döndürür. DateTime sonYazimZamani = Directory.GetLastWriteTime("YeniKlasör"); MessageBox.Show(sonYazimZamani.ToString()); //Klasöre en son veri yazıldığı zamanın bilgisini döndürür. |
-
Move metodu ile klasörü taşıma
1 2 |
Directory.Move("YeniKlasör",@"C:\YeniKlasör"); //Klasörü birinci parametredeki dizinden alıp, ikinci parametredeki dizine taşır. |
-
Exist metodu ile klasörün varlığını kontrol etme
1 2 3 4 |
if (Directory.Exists(@"c:\Program Files")) MessageBox.Show("Evet var"); else MessageBox.Show("Hayır yok"); |
C#’da Dosya İşlemleri
C#’da dosya işlemlerine ait metotların birçoğu yukarıda klasör işlemleri için anlatılanlara benzemektedir. Dosya işlemlerini gerçekleştirmek için System.IO altındaki File sınıfı kullanılır. Aşağıdaki örnekte bu sınıfın kullanımıyla ilgili temel metotlar açıklanmıştır.
-
Create metodu ile dosya oluşturma
1 2 3 4 5 |
FileStream fs= File.Create(@"C:\Kutlay\metinbelgesi.txt"); //C: dizinindeki kutlay klasörünün içerisine metinbelgesi isminde bir metin dosyası oluşturur. fs.Close(); //Create ile bir dosya oluşturulduğunda Filestream nesnesi döndürülür. //FileStream akışı kapatılmadan dosya kopyalama ve taşıma işlemleri yapılamaz. |
-
Copy metodu dosya kopyalama
1 2 |
File.Copy(@"C:\Kutlay\metinbelgesi.txt", @"C:\metinbelgesi.txt"); //1.parametrede adı geçen dosya, ikinci parametrede belirtilen adrese kopyalanır. |
-
Move metodu ile dosya taşıma
1 2 |
File.Move(@"C:\Kutlay\metinbelgesi.txt", @"C:\metinbelgesi.txt"); //1.parametrede adı geçen dosya, ikinci parametrede belirtilen adrese taşınır. |
-
Delete metodu ile dosya silme
1 2 |
File.Delete(@"C:\Kutlay\metinbelgesi.txt"); //Belirtilen dosyayı siler. |
-
Exist metodu ile dosyanın bulunup bulunmadığını kontrol etme
1 2 3 4 |
if(File.Exists(@"C:\Kutlay\metinbelgesi.txt")) MessageBox.Show ("Dosya bulundu."); else MessageBox.Show("Dosya mevcut değil."); |
ellerin dert görmesin güzel çalışma 😉
klasör kopyalama ile örnek verebilmeniz mümkün mü dosya kopyalama işlemini yapıyorum ancak klasör kopyalama işlemini yapamıyorum
File.Copy(@”C:\Kutlay\metinbelgesi”, @”C:\metinbelgesi”);
dosya kopyalamada uzantıları oluyor klasörler de uzantı olmuyor eger uzantısız olarak direk o kısma dosyaların adını yazarsanız olabilir deneyin olurmu bilmiyorum ama bazı programlarda oluyor.
Peki yaratılmış olan bir klasörün adı değiştirilmek istenirse, bununla ilgili bir kod mevcut mudur? Şimdiden teşekkür ederim.
peki oluşturduğumuz dosyanın içine text boxtaki yazıyı nasıl yaza biliriz
ve gerektiğinde dosyanın içindeki yazıyı başka bir text boxtaki yazı ile eşitliğini nasıl kontrol edebilirim
Kardeşim Allah senden razı olsun çok işime yaradı eline koluna sağlık.
Metin belgesini kopyalarken zaten var deyip kopyalamıyor yardım edermisiniz