如果是vb,可以用remane来实现。C#中可能要调用api吧,具体是哪个dll就不知道了,上msdn上查一下

解决方案 »

  1.   

    帮助里的:
    static public void CopyDirectory(string SourceDirectory, string TargetDirectory)
    {
         DirectoryInfo   source = new DirectoryInfo(SourceDirectory);
         DirectoryInfo   target = new DirectoryInfo(TargetDirectory);
             
         //Check If we have valid source
         if(!source.Exists)
            return;     if(!target.Exists)
            target.Create();
             
         //Copy Files
         FileInfo[] sourceFiles = source.GetFiles();   
         for(int i = 0; i < sourceFiles.Length; ++i)
         File.Copy(sourceFiles[i].FullName, target.FullName + "\\" + sourceFiles[i].Name,true);
             
         //Copy directories
         DirectoryInfo[] sourceDirectories = source.GetDirectories();   
         for(int j = 0; j < sourceDirectories.Length; ++j)
            CopyDirectory(sourceDirectories[j].FullName,target.FullName +"\\" + sourceDirectories[j].Name);
    }
    帮助里的路径:
    .net框架/参考/类库/system.IO/DirectoryInfo/属性/exists属性
      

  2.   

    用system.IO,可以用递归的方法实现
      

  3.   

    量身定做:
    //sSrcPath :源文件夹   D:\\test
    //sDescPath:目标文件夹 E:\\temp
    private void CopyDirectory(string sSrcPath,string sDescPath)
    {
      try 
      {
        if (System.IO.Directory.Exists(sSrcPath))
        {
            if (!System.IO.Directory.Exists(sDescPath))
    System.IO.Directory.CreateDirectory(sDescPath);
        }
        else
       {
           return;
       }  string[] sSrcDSet = System.IO.Directory.GetDirectories(sSrcPath);
      foreach (string sSrcD in sSrcDSet) 
      {
        string sD = sSrcD;
        sD = sD.Replace(sSrcPath,sDescPath);
        CopyDirectory(sSrcD,sD);
      }  string[] sSrcFSet = System.IO.Directory.GetFiles(sSrcPath);
      foreach (string sSrcF in sSrcFSet) 
      {
        string sF = sSrcF;
        sF = sF.Replace(sSrcPath,sDescPath);
        System.IO.File.Copy(sSrcF,sF,true);
      }
     }
     catch (ArgumentNullException) 
     {
        System.Console.WriteLine("Path is a null reference.");
     }
     catch (System.Security.SecurityException) 
     {
        System.Console.WriteLine("The caller does not have the required permission.");
     }
     catch (ArgumentException) 
     {
        System.Console.WriteLine("Path is an empty string, contains only white spaces, or contains invalid characters.");
     }
     catch (System.IO.DirectoryNotFoundException) 
     {
        System.Console.WriteLine("The path encapsulated in the Directory object does not exist.");
     }
    }
      

  4.   

    static void Copy(String src, String dest) {
    try{
      Directory.CreateDirectory(dest);
      String[] sub = Directory.GetDirectories(src);
      for (int i = 0; i < sub.Length; i++) {
         String name = Path.GetFileName(sub[i]);
         Copy(sub[i], dest + "\\" + name);
      }
      String[] files = Directory.GetFiles(src);
      for (int i = 0; i < files.Length; i++) {
         String name = Path.GetFileName(files[i]);
         File.Copy(files[i], dest + "\\" + name);
      }
    }catch(Exception e){
    Console.WriteLine(e);
    }
    }