PDA

View Full Version : آموزش: کپی تمام محتویات یک پوشه . شامل فایلها و زیرپوشه ها



دلتنگ اسمان
شنبه 16 خرداد 1394, 13:46 عصر
با سلام
چند وقتی بود درگیر کپی کردن زیرپوشه ها و فایلهای یک پوشه بودم. برنامه هایی هم که پیدا میکردم فایلها رو کپی میکنه نه یک پوشه رو.
بالاخره موفق شدم یه برنامه (از سایت مایکروسافت ) پیدا کنم که تمام محتویات یک پوشه رو چه فایلها و چه زیرپوشه ها رو کپی میکنه. امیدوارم مفید واقع بشه.

public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

static string source = "";
static string dest = "";
DirectoryInfo sourceDir;
DirectoryInfo destinationDir;
private void sourcebtn_Click(object sender, EventArgs e)
{
FolderBrowserDialog Fd = new FolderBrowserDialog();
if (Fd.ShowDialog() == DialogResult.OK)
{
source = Fd.SelectedPath;
}
sourceDir = new DirectoryInfo(source);

}

private void destbtn_Click(object sender, EventArgs e)
{
FolderBrowserDialog fbd = new FolderBrowserDialog();
if (fbd.ShowDialog() == DialogResult.OK)
{
dest = fbd.SelectedPath;
}
destinationDir = new DirectoryInfo(dest);

}

private void startbtn_Click(object sender, EventArgs e)
{
FolderCopy FC = new FolderCopy();
FC.CopyDirectory(sourceDir, destinationDir);

}






}





class FolderCopy
{
public void CopyDirectory(DirectoryInfo source, DirectoryInfo destination)
{
if (!destination.Exists)
{
destination.Create();
}

// Copy all files.
FileInfo[] files = source.GetFiles();
foreach (FileInfo file in files)
{
file.CopyTo(Path.Combine(destination.FullName,
file.Name));
}

// Process subdirectories.
DirectoryInfo[] dirs = source.GetDirectories();
foreach (DirectoryInfo dir in dirs)
{
// Get destination directory.
string destinationDir = Path.Combine(destination.FullName, dir.Name);

// Call CopyDirectory() recursively.
CopyDirectory(dir, new DirectoryInfo(destinationDir));
}
}
}