Bu yazımda bir klasörü alt klasörler ve dosyalarla birlikte nasıl kopyalanacağını anlatacağım.
Öncelikle bu iş için C# tarafında basit bir yöntem ne yazıkki yoktur. Bunun için sizinle bir metot paylaşacağım.
class Program
{
static void Main(string[] args)
{
string kaynakDizin = @"C:\Kaynak";
string hedefDizin = @"C:\Hedef";
Copy(kaynakDizin, hedefDizin);
Console.WriteLine("Bitti..");
Console.ReadKey();
}
public static void Copy(string kaynakDizin, string hedefDizin)
{
var diKaynak = new DirectoryInfo(kaynakDizin);
var diHedef = new DirectoryInfo(hedefDizin);
CopyAll(diKaynak, diHedef);
}
public static void CopyAll(DirectoryInfo kaynak, DirectoryInfo hedef)
{
Directory.CreateDirectory(hedef.FullName);
//Dosyaları Yeni Dizine Kopyalıyoruz.
foreach (FileInfo fi in kaynak.GetFiles())
{
Console.WriteLine(@"Kopyalanan : {0} \ {1}", hedef.FullName, fi.Name);
fi.CopyTo(Path.Combine(hedef.FullName, fi.Name), true);
}
//Özyineli (recursive) Fonksiyon Kullanarak Alt Dizinleri Kopyalıyoruz.
foreach (DirectoryInfo diKaynakAltDizin in kaynak.GetDirectories())
{
DirectoryInfo sonrakiHedefAltDizin =
hedef.CreateSubdirectory(diKaynakAltDizin.Name);
CopyAll(diKaynakAltDizin, sonrakiHedefAltDizin);
}
}
}
Paylaşmış olduğum metot zaten çok basit ve anlaşılır şekilde. Anlamadığınız veya takıldığınız yerler olursa yorumlarda sorunuzu sorabilirsiniz.

Bir yanıt yazın