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);
        }
Beispiel #2
0
        private void ProcessCreate(string filename, Stream data)
        {
            var filePath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, _syncDir, filename);

            using (var fileStream = File.Create(filePath))
            {
                data.Seek(0, SeekOrigin.Begin);
                data.CopyTo(fileStream);
            }

            var signatureFilename = OctodiffHelper.GetSignatureName(filePath);
            var signaturePath     = Path.Combine(_tmpDir, signatureFilename);

            OctodiffHelper.BuildSignature(filePath, signaturePath);
        }