Exemple #1
0
            public void Add(string internalFileName, int position, int length)
            {
                if (isDisposed)
                {
                    throw new InvalidOperationException();
                }

                headerLookup.Add(internalFileName, new MyArchiveFileHeaderElement(position, length));
                HeaderOrder.Add(position, internalFileName);

                using (MemoryStream tempStream = new MemoryStream(TEMP_STREAM_BUFFER))
                {
                    using (BinaryWriter writer = new BinaryWriter(tempStream))
                    {
                        writer.Write(internalFileName.Length);

                        foreach (char c in internalFileName)
                        {
                            writer.Write(c);
                        }

                        writer.Write(position);
                        writer.Write(length);

                        writer.Flush();

                        var buffer = tempStream.ToArray();
                        RawHeader.Write(buffer, 0, buffer.Length);
                    }
                }
            }