Merhabalar dostlar , 🙂 ufak bir yöntem ile basit bir şekilde belirli bir klasördeki dosyayı kopyalama işlemi yapabiliriz, Nasıl ?, Hemen bakalım.
Öncelikle kopyalanmasını istediğimiz dosyaları oluşturalım. Ben bir txt dosyasını kopyalamak istiyorum ve örneğin
“C:\dosya\dosya.txt” uzantısında bir dosya.txt adlı bir metin belgem mevcut.
Bu TXT dosyamı “C:\dosya_yedek” uzantısına kopyalamak istiyorum.
Dosya konumlarından emin olduktan sonra şimdi kodlarımızı yazalım. 🙂
Form üzerinde bir button ekleyerek işlem yaptıralım bu kodları standart bir Console uygulamasında kullana bilirsiniz. (MessageBox gibi Form özelliği taşıyan fonksiyonları kaldırarak tabi)
Ek olarak Kesinlikle System.IO Kütüphanesini tanımlamayı yapın.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using System.IO; // System.IO Framework,Yaptığımız Dosya kopyalama Tüm dosya işlemlerinde kullanılmak zorunda namespace VS2017 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { string fileName = "dosya.txt"; // Kopyalamak istediğimiz dosya ve uzantısı string sourcePath = @"C:\dosya"; // dosyamızın bulunduğu klasör konumu string targetPath = @"C:\dosya_yedek"; // dosyamızı kopyalamak istediğimiz klasörün konumu string sourceFile = System.IO.Path.Combine(sourcePath, fileName); // dosya ismi ve konumunu birleştirmek için kullanıyoruz string destFile = System.IO.Path.Combine(targetPath, fileName); // kopyalama işleminde hedef dosya tanımlıyoruz ve tam isim ile kopyalamsını sağlıyoruz if (!System.IO.Directory.Exists(targetPath)) // if ile kopyalamak istediğimiz dosya konumu doğru olup olmadığını veya öyle bir dosya varmı yokmu kontrol ediyoruz { System.IO.Directory.CreateDirectory(targetPath); // if ile kontrol ettiğimiz klasör yok ise oluşturuyoruz } System.IO.File.Copy(sourceFile, destFile, true); // Dosyamızı hedef klasöre kopyalıyoruz. if (System.IO.Directory.Exists(sourcePath)) // Kopyalama işlemini kontrol ediyoruz sorun var ise else bölümüne geciriyoruz { string[] files = System.IO.Directory.GetFiles(sourcePath); foreach (string s in files) { fileName = System.IO.Path.GetFileName(s); destFile = System.IO.Path.Combine(targetPath, fileName); System.IO.File.Copy(s, destFile, true); } } else { MessageBox.Show("Kopyalamadı bir sorun oluştu lütfen dosyanızı kontrol edin."); } } } } |
Dilersek try,catch fonksiyonu kullanarak da kopyalama ve kontrol sırasında sorunlarda program kapatmış olmayız.
Hemen programımızı çalıştırıp test edelim.
Kopyalamak istediğimiz dosya konumu olan “C:\dosya_yedek” hemen kontrol ediyoruz ve gördüğümüz gibi dosya.txt dosyası içerisindeki metin bilgileri ile sorunsuz bir şekilde kopyaladık. 🙂
Umarım yararlı olmuştur dostlar. Kolay gelmesi dileği ile.
3 yorum
Faydalı bir yazı olmuş eline sağlık.
Arkadaşım klasörün kendisini kopyalamak istiyorum.Yani biz uzantı yok, nasıl yaparız?
Ve her yeni kopyalamada bir öncekinin üzerine mi yazacak yoksa değiştir gibi bir uyarı verecek mi?
https://www.youtube.com/watch?v=Cj0E27YGfR4&vl=tr&ab_channel=SendeKodYaz
Aslında aynı method ile uzantıyı silerek Folder parametresi ile kullana bilirsiniz.
Bu videoda detaylı ve örnekler ile anlatılmış , tavisye edebilirim.
Yazılımsal bir hata veya sorun olur ise bana iletir iseniz yarımcı olurum 🙂