Uygulama içerisinde kaynak ve hedef klasörler seçilir. Ardından kopyalanacak dosya türleri ve kaynak dosyaların silinip silinmeyeceği seçilir. Bu parametrelerle kopyalama işlemi gerçekleştirilir.
Not: Uygulamada herhangi bir hata denetimi yapılmadığından koruma altındaki dosyalar kopyalanmak istendiğinde uygulama hata verebilir.

Kaynak Seç isimli butona ait kodlar
folderBrowserDialog1.ShowDialog(); textBox1.Text = folderBrowserDialog1.SelectedPath;
Hedef Seç isimli butona ait kodlar
folderBrowserDialog1.ShowDialog(); textBox2.Text = folderBrowserDialog1.SelectedPath;
Kopyala isimli butona ait kodlar
progressBar1.Minimum = 0;
String[ ] dosyalar = Directory.GetFiles(textBox1.Text, "*.*", SearchOption.AllDirectories);
progressBar1.Maximum = dosyalar.Length;
//dosyaları kopyalıyoruz.
for (int i = 0; i < dosyalar.Length; i++)
{
if (radioButton2.Checked)
{
if (Path.GetExtension(dosyalar[i]) == ".jpg")
{
String dosyaadi = Path.GetFileName(dosyalar[i]);//dosyanın dizin hariç adını getir
File.Copy(dosyalar[i], textBox2.Text + "\\" + dosyaadi);//dosyayı hedef dizine kopyala
}
}
if (radioButton1.Checked)
{
if (Path.GetExtension(dosyalar[i]) == ".exe")
{
String dosyaadi = Path.GetFileName(dosyalar[i]);//dosyanın dizin hariç adını getir
File.Copy(dosyalar[i], textBox2.Text + "\\" + dosyaadi);//dosyayı hedef dizine kopyala
}
}
if (radioButton3.Checked)
{
if (Path.GetExtension(dosyalar[i]) == ".png")
{
String dosyaadi = Path.GetFileName(dosyalar[i]);//dosyanın dizin hariç adını getir
File.Copy(dosyalar[i], textBox2.Text + "\\" + dosyaadi);//dosyayı hedef dizine kopyala
}
}
if (radioButton4.Checked)
{
String dosyaadi = Path.GetFileName(dosyalar[i]);//dosyanın dizin hariç adını getir
File.Copy(dosyalar[i], textBox2.Text + "\\" + dosyaadi);//dosyayı hedef dizine kopyala
}
if(checkBox1.Checked)//kaynak dosya silinsin seçeneği işaretli mi
{
File.Delete(dosyalar[i]);//işaretliyse dosyayı sil
}
progressBar1.Value = i+1;//progressbar ın ilerlemesini sağla
}Örnek Uygulama