ICSharpCode.SharpZipLib.Zip.ZipFile.CopyDescriptorBytesDirect C# (CSharp) Method

CopyDescriptorBytesDirect() private method

private CopyDescriptorBytesDirect ( ZipUpdate update, Stream stream, long &destinationPosition, long sourcePosition ) : void
update ZipUpdate
stream Stream
destinationPosition long
sourcePosition long
return void
        private void CopyDescriptorBytesDirect(ZipUpdate update, Stream stream, ref long destinationPosition,
                                               long sourcePosition) {
            int bytesToCopy=GetDescriptorSize(update);

            while (bytesToCopy>0) {
                int readSize=bytesToCopy;
                byte[] buffer=GetBuffer();

                stream.Position=sourcePosition;
                int bytesRead=stream.Read(buffer, 0, readSize);
                if (bytesRead>0) {
                    stream.Position=destinationPosition;
                    stream.Write(buffer, 0, bytesRead);
                    bytesToCopy-=bytesRead;
                    destinationPosition+=bytesRead;
                    sourcePosition+=bytesRead;
                } else {
                    throw new ZipException("Unxpected end of stream");
                }
            }
        }