递归即可:
这样写
private int MoveDir(string strSource,string strDest)
{
int intRet = 0;
DirectoryInfo diSourceDir = new DirectoryInfo(strSource);
DirectoryInfo diDestDir = new DirectoryInfo(strDest);
diDestDir.CreateSubdirectory(diSourceDir.Name);
DirectoryInfo[] diArray = diSourceDir.GetDirectories();
FileInfo[] fiArray = diSourceDir.GetFiles();
string strDestDir = string.Empty; foreach(DirectoryInfo dir in diArray)
{
strDestDir = strDest.TrimEnd(new char[] {'\\'}) + "\\" + diSourceDir.Name;
MoveDir(dir.FullName,strDestDir);
}
foreach(FileInfo file in fiArray)
{
file.CopyTo(strDest + "\\" + diSourceDir.Name + "\\" + file.Name);
}
return intRet;
}