拡張子が.zzzのすべてのファイルを見つけて、そのファイルの親フォルダー(およびそのすべての内容)を宛先ディレクトリにコピーします。以下のコードは機能しますが、サブディレクトリの最初のレベルのみをコピーします。
private void btn_submit_Click(object sender, EventArgs e)
{
string srcFolder = txt_src.Text;
string destFolder = txt_dest.Text;
foreach (string zzz in Directory.GetFiles(srcFolder, "*.zzz", SearchOption.AllDirectories))
{
string modulePath = Directory.GetParent(zzz).FullName;
string moduleName = Directory.GetParent(zzz).Name;
Directory.CreateDirectory(destFolder + "\\" + moduleName);
foreach (string subFolders in Directory.GetDirectories(modulePath, "*", SearchOption.AllDirectories))
{
Directory.CreateDirectory(subFolders.Replace(modulePath, destFolder + "\\" + moduleName));
}
foreach (string allFiles in Directory.GetFiles(modulePath, "*.*", SearchOption.AllDirectories))
{
File.Copy(allFiles, allFiles.Replace(modulePath, destFolder + "\\" + moduleName), true);
}
}
}