IfcDoc.DocumentationISO.CopyFiles C# (CSharp) Method

CopyFiles() private static method

Copies files and folders recursively, skipping those that already exist.
private static CopyFiles ( string sourcepath, string targetpath ) : void
sourcepath string Path of source directory
targetpath string Path of target directory
return void
        private static void CopyFiles(string sourcepath, string targetpath)
        {
            if (!System.IO.Directory.Exists(sourcepath))
                return;

            string[] arrFiles = System.IO.Directory.GetFiles(sourcepath);
            foreach (string sourcefile in arrFiles)
            {
                string filename = System.IO.Path.GetFileName(sourcefile);
                string targetfile = System.IO.Path.Combine(targetpath, filename);

                try
                {
                    if (!System.IO.File.Exists(targetfile))
                    {
                        System.IO.File.Copy(sourcefile, targetfile);
                    }
                }
                catch
                {
                }
            }

            string[] arrDirectories = System.IO.Directory.GetDirectories(sourcepath);
            foreach (string sourcedir in arrDirectories)
            {
                string dirname = System.IO.Path.GetFileName(sourcedir);
                string targetdir = System.IO.Path.Combine(targetpath, dirname);

                try
                {
                    if (!System.IO.Directory.Exists(targetdir))
                    {
                        System.IO.Directory.CreateDirectory(targetdir);
                    }
                }
                catch
                {
                }

                CopyFiles(sourcedir, targetdir);
            }
        }