private void ChangeRoutine(FileAction fileAction) { var filePath = fileAction.FilePath; var deltaFilename = OctodiffHelper.GetDeltaName(filePath); var deltaFilePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, _tempDirectory, deltaFilename); var signatureFilename = OctodiffHelper.GetSignatureName(filePath); var signatureFilePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, _tempDirectory, signatureFilename); if (!File.Exists(signatureFilePath)) { CreateRoutine(new FileAction(filePath, FileActionType.Created)); return; } OctodiffHelper.CreateDelta(filePath, signatureFilePath, deltaFilePath); byte[] deltaFile; using (var SourceStream = File.Open(deltaFilePath, FileMode.Open)) { deltaFile = new byte[SourceStream.Length]; SourceStream.Read(deltaFile, 0, (int)SourceStream.Length); } _httpSender.SendChange(filePath, deltaFile); }
private void ProcessChange(string filename, Stream data) { var filePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, _syncDir, filename); var deltaFilename = OctodiffHelper.GetDeltaName(filePath); var deltaFilePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, _tmpDir, filename); using (var fileStream = File.Create(deltaFilePath)) { data.Seek(0, SeekOrigin.Begin); data.CopyTo(fileStream); } var signatureFilename = OctodiffHelper.GetSignatureName(filePath); var signaturePath = Path.Combine(_tmpDir, signatureFilename); OctodiffHelper.ApplyDelta(filePath, signaturePath, deltaFilePath); }