What is the best way to recursively copy contents in C#?

后端 未结 3 2058
北海茫月
北海茫月 2020-12-06 10:31

What is the best way to recursively copy a folder\'s content into another folder using C# and ASP.NET?

3条回答
  •  温柔的废话
    2020-12-06 11:22

    Well you can try this

    DirectoryInfo sourcedinfo = new DirectoryInfo(@"E:\source");
    DirectoryInfo destinfo = new DirectoryInfo(@"E:\destination");
    copy.CopyAll(sourcedinfo, destinfo);
    

    and this is the method that do all the work:

    public void CopyAll(DirectoryInfo source, DirectoryInfo target)
    {
        try
        {
            //check if the target directory exists
            if (Directory.Exists(target.FullName) == false)
            {
                Directory.CreateDirectory(target.FullName);
            }
    
            //copy all the files into the new directory
    
            foreach (FileInfo fi in source.GetFiles())
            {
                fi.CopyTo(Path.Combine(target.ToString(), fi.Name), true);
            }
    
    
            //copy all the sub directories using recursion
    
            foreach (DirectoryInfo diSourceDir in source.GetDirectories())
            {
                DirectoryInfo nextTargetDir = target.CreateSubdirectory(diSourceDir.Name);
                CopyAll(diSourceDir, nextTargetDir);
            }
            //success here
        }
        catch (IOException ie)
        {
            //handle it here
        }
    }
    

    I hope this will help :)

提交回复
热议问题