http://www.codeproject.com/csharp/copydirectoriesrecursive.asp

解决方案 »

  1.   

    public static void copyDirectory(string Src,string Dst){
                String[] Files;            if(Dst[Dst.Length-1]!=Path.DirectorySeparatorChar) 
                    Dst+=Path.DirectorySeparatorChar;
                if(!Directory.Exists(Dst)) Directory.CreateDirectory(Dst);
                Files=Directory.GetFileSystemEntries(Src);
                foreach(string Element in Files){
                    // Sub directories
                    if(Directory.Exists(Element)) 
                        copyDirectory(Element,Dst+Path.GetFileName(Element));
                    // Files in directory
                    else 
                        File.Copy(Element,Dst+Path.GetFileName(Element),true);
                    }
                }        }
      

  2.   

    try:
    string[] dirs = Directory.GetFiles(path1);
    foreach(string dir in dirs)
    {
       if(!File.Exists(path2+"\"+dir))
       {
          File.Copy(path1+"\"+dir,path2+"\"+dir);
        }
        
    }
    手写的代码,你自己再调试一下
      

  3.   

    agree with  acewang(龍芯*Inside!) 
    递归调用
      

  4.   

    我这里也有一个方法
    楼主可以看看
    using System.IO;private void CopyFiles(string varFromDirectory,string varToDirectory)
    {
    Directory.CreateDirectory(varToDirectory); if(!Directory.Exists(varFromDirectory)) return; string[] directories = Directory.GetDirectories(varFromDirectory); if(directories.Length > 0)
    {
    foreach(string d in directories)
    {
    CopyFiles(d,varToDirectory + d.Substring(d.LastIndexOf("\\")));
    }
    }
    string[] files = Directory.GetFiles(varFromDirectory); if(files.Length > 0)
    {
    foreach(string s in files)
    {
    File.Copy(s,varToDirectory + s.Substring(s.LastIndexOf("\\")));
    }
    }
    }
      

  5.   

    brightheroes(闭关|那一剑的风情,我也是用的你的这个代码但是如果已经有同名的文件就会出错了,我现在就是不会判断已经有同名的文件的处理,请指教