Beispiel #1
0
        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);
        }