【发布时间】:2013-03-22 18:19:34
【问题描述】:
我想找到每个扩展名为 .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 postingstackoverflow.com/questions/10389701/…MSDN Reference CopyDirectory -
File.CopyTo(Parameter 1, Parameter 2)
-
这个问题有一个很好的递归函数示例,它列出了给定目录中的所有文件。拿着它跑吧:stackoverflow.com/questions/929276/…