BlogTalkRadio.Tools.CFT.DirectoryProcessor.ReplaceWithTempIfChanged C# (CSharp) Method

ReplaceWithTempIfChanged() private method

private ReplaceWithTempIfChanged ( string fileTemp, string file, bool dry = false ) : bool
fileTemp string
file string
dry bool
return bool
        private bool ReplaceWithTempIfChanged(string fileTemp, string file, bool dry = false)
        {
            try
            {
                if (!File.Exists(file))
                {
                    if (dry)
                    {
                        throw new DryRunFailedException(file);
                    }
                    File.Move(fileTemp, file);
                    return true;
                }
                var fileInfo = new FileInfo(file);
                var fileTempInfo = new FileInfo(fileTemp);
                if (fileInfo.Length != fileTempInfo.Length || File.ReadAllText(file) != File.ReadAllText(fileTemp))
                {
                    if (dry)
                    {
                        throw new DryRunFailedException(file);
                    }
                    File.Copy(fileTemp, file, true);
                    File.Delete(fileTemp);
                    return true;
                }
                return false;
            }
            finally
            {
                File.Delete(fileTemp);
            }
        }