private static void CopyContents(DirectoryInfo source, DirectoryInfo target, bool includeSubDirectories)
{
if (!Directory.Exists(target.FullName))
{
Directory.CreateDirectory(target.FullName);
}
foreach (FileInfo fi in source.GetFiles())
{
string targetFile = Path.Combine(target.ToString(), fi.Name);
fi.CopyTo(targetFile, true);
}
if (includeSubDirectories)
{
DirectoryInfo[] subDirectories = source.GetDirectories();
foreach (DirectoryInfo diSourceSubDir in subDirectories)
{
DirectoryInfo nextTargetSubDir =
target.CreateSubdirectory(diSourceSubDir.Name);
CopyContents(diSourceSubDir, nextTargetSubDir, true);
}
}
}