我需要将指定目录下所有文件和目录copy到别的目录下怎么用?

解决方案 »

  1.   

    一是用file.copy
    File.Copy(sourceFileName,destFileName,true);二是调用xcopy
    Process XCopy = new Process();
    XCopy.StartInfo.FileName = "xcopy";
    XCopy.StartInfo.Arguments = " "+sourceFileName.Replace("Program Files","\"Program Files\"").Replace("Documents and Settings","\"Documents and Settings\"").Replace("My Documents","\"My Documents\"")+" "+destFileName.Replace("Program Files","\"Program Files\"").Replace("Documents and Settings","\"Documents and Settings\"").Replace("My Documents","\"My Documents\"")+" /e /y";
    XCopy.Start();
      

  2.   

    这个是Windows本身文件操作所用的函数,可以对文件夹进行复制、移动、删除操作
      

  3.   

    File.Copy(sourceFileName,destFileName,true);
    不行啊
    sourceFileName = "c:\\temp\\ss.txt";
    destFileName = "d:\\";
      

  4.   

    DirectoryInfo.GetDirectories得到子文件夹,递归调用
    DirectoryInfo.GetFiles,循环复制用FileInfo.CopyTo
      

  5.   

    DirectoryInfo.GetFiles得到FileInfo数组,循环遍历数组用FileInfo.CopyTo复制
      

  6.   

    写的详细一点,好么?每一级目录和文件都要copy。
      

  7.   

    我都说得这么明白了,还不会,唉,
    只好受累帮你写出来了,源码如下:
    public static void CopyDir(string srcDir,string desDir)
    {
        if(!Directory.Exists(desDir))
        {
            Directory.CreateDirectory(desDir);
        }
        DirectoryInfo rootDi = new DirectoryInfo(srcDir);    //遍历文件
        FileInfo[] afi = rootDi.GetFiles();
        for(int i=0;i<afi.Length;i++)
        {
            FileInfo fi = afi[i];
            fi.CopyTo(desDir+"\\"+fi.Name,true);
        }    //遍历子目录,递归调用以copy子目录
        DirectoryInfo[] adi = rootDi.GetDirectories();
        for(int i=0;i<adi.Length;i++)
        {
            DirectoryInfo di = adi[i];
            CopyDir(di.FullName,desDir+"\\"+di.Name);
        }
    }
      

  8.   

    srcDir指定源目录
    desDir目标目录