-3
我想找到扩展名为.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);
}
}
}
有这么多在线的例子,以及这里'SO'看看这个'SO发布'http://stackoverflow.com/questions/10389701/how-to-create-a (MSDN Reference CopyDirectory)(http://msdn.microsoft.com/zh-cn/library/bb762914.aspx) – MethodMan 2013-03-22 18:23:12
File.CopyTo(参数1,函数返回所有文件和文件夹)参数2)< - 提示:第二个是递归。 – Greg 2013-03-22 18:27:14
这个问题有一个很好的递归函数的例子,它列出了给定目录中的所有文件。采取并运行它:http://stackoverflow.com/questions/929276/how-to-recursively-list-all-the-files-in-a-directory-in-c – tnw 2013-03-22 18:31:30