private void CopyFile()

in src/Artifacts/Tasks/Robocopy.cs [50:80]


        private void CopyFile(FileInfo sourceFile, FileInfo destFile, bool createDirs, RobocopyMetadata metadata)
        {
            if (createDirs)
            {
                CreateDirectoryWithRetries(destFile.DirectoryName);
            }

            for (int retry = 0; retry <= RetryCount; ++retry)
            {
                try
                {
                    if (metadata.ShouldCopy(FileSystem, sourceFile, destFile))
                    {
                        destFile = FileSystem.CopyFile(sourceFile, destFile.FullName, true);
                        destFile.Attributes = FileAttributes.Normal;
                        destFile.LastWriteTime = sourceFile.LastWriteTime;
                        Log.LogMessage(MessageImportance.Low, "Copied {0} to {1}", sourceFile.FullName, destFile.FullName);
                    }
                    else
                    {
                        Log.LogMessage(MessageImportance.Low, "Skipped copying {0} to {1}", sourceFile.FullName, destFile.FullName);
                    }

                    break;
                }
                catch (IOException e)
                {
                    LogCopyFailureAndSleep(retry, "Failed to copy {0} to {1}. {2}", sourceFile.FullName, destFile.FullName, e.Message);
                }
            }
        }