Home Education and learning Web hosting and design Small Business
C Sharp code
FolderFileCopy can be used to copy folder along with sub-folders and files.



using System;
using System.Collections.Generic;
using System.Text;
using System.IO;

namespace Rcopy
{
    class Program
    {
        static void Main(string[] args)
        {
            // It copies all the contents from folderv"c:\delete\x"
            // to "c:\delete\y
            // Note: Folder  "c:\delete\y" must exist. The program will
            // not create folder "y".
            new Program().FolderFileCopy(@"c:\delete\x", @"c:\delete\y");
            Console.WriteLine("end of program... click any key to continue");
            Console.ReadLine();
        }

        public int FolderFileCopy(string sourceFolder, string destinationFolder)
        {
            int fileIterator = 0;
            int dirIterator = 0;
            //DirectoryInfo sourceDirInfo;
            //DirectoryInfo destinationDirInfo;
            FileInfo sourceFileInfo;
            DirectoryInfo destinationDirInfo = new DirectoryInfo(destinationFolder);
            DirectoryInfo sourceDirInfo = new DirectoryInfo(sourceFolder);
            DirectoryInfo[] sourceDirList = null;
            FileInfo[] files = null;
            try
            {
                sourceDirList = sourceDirInfo.GetDirectories();
                for (dirIterator = 0; dirIterator < sourceDirList.Length; dirIterator = dirIterator + 1)
                {
                    if (dirIterator == 0)
                    {
                        files = null;
                        files = sourceDirInfo.GetFiles();
                        for (fileIterator = 0; fileIterator < files.Length; fileIterator = fileIterator + 1)
                        {
                            sourceFileInfo = new FileInfo(sourceDirInfo.FullName +
                                 Path.DirectorySeparatorChar + files[fileIterator].Name);
                            sourceFileInfo.CopyTo(destinationDirInfo.FullName +
                                 Path.DirectorySeparatorChar + files[fileIterator].Name, true);
                        }
                    }
             

                    destinationDirInfo.CreateSubdirectory(sourceDirList[dirIterator].Name);
                    sourceDirInfo = new DirectoryInfo(sourceDirInfo.FullName +
                                Path.DirectorySeparatorChar +
                                sourceDirList[dirIterator].Name);
                    destinationDirInfo = new DirectoryInfo(destinationDirInfo.FullName +
                                Path.DirectorySeparatorChar + sourceDirList[dirIterator].Name);
                    FolderFileCopy(sourceDirInfo.FullName, destinationDirInfo.FullName);
                }

                files = null;
                files = sourceDirInfo.GetFiles();
                for (fileIterator = 0; fileIterator < files.Length; fileIterator = fileIterator + 1)
                {
                    sourceFileInfo = new FileInfo(sourceDirInfo.FullName +
                         Path.DirectorySeparatorChar + files[fileIterator].Name);
                    sourceFileInfo.CopyTo(destinationDirInfo.FullName +
                         Path.DirectorySeparatorChar + files[fileIterator].Name, true);
                }

            }
            catch (Exception exception)
            {
                Console.WriteLine(exception.Message);
                return -1;
            }
            return 0;
        }



    }
}


teacherone provides material for training only. We do not warrant the correctness of its contents. The risk from using it lies entirely with the user. teacherone is not liable for any damage or loss.