Example #1
0
        private void _read()
        {
            _headerPrefix = new FileHeaderPrefix(m_io, this, m_root);
            __raw_header  = m_io.ReadBytes((HeaderPrefix.LenHeader - 6));
            var io___raw_header = new KaitaiStream(__raw_header);

            _header        = new FileHeader(io___raw_header, this, m_root);
            __raw__raw_toc = m_io.ReadBytes(Header.LenTocCompressed);
            __raw_toc      = m_io.ProcessZlib(__raw__raw_toc);
            var io___raw_toc = new KaitaiStream(__raw_toc);

            _toc = new TocType(io___raw_toc, this, m_root);
        }
Example #2
0
        /// <summary>
        /// 构造存储头
        /// </summary>
        /// <returns></returns>
        public byte[] MakeFileHeader()
        {
            // 魔数前缀长度 | 块的大小
            byte[] header = new byte[FileHeaderSize];

            // 魔数前缀
            FileHeaderPrefix.CopyTo(header, 0);

            // 块的大小 4 Bytes
            StoredHelper.Store(this.BlockSize, header, FileHeaderPrefix.Length);

            return(header);
        }
Example #3
0
        private void _read()
        {
            _headerPrefix = new FileHeaderPrefix(m_io, this, m_root);
            __raw_header  = m_io.ReadBytes((HeaderPrefix.LenHeader - 10));
            var io___raw_header = new KaitaiStream(__raw_header);

            _header = new FileHeader(io___raw_header, this, m_root);
            _chunks = new List <Chunk>();
            for (var i = 0; i < Header.NumChunks; i++)
            {
                _chunks.Add(new Chunk(m_io, this, m_root));
            }
        }
Example #4
0
        /// <summary>
        /// 构造存储头
        /// </summary>
        /// <returns></returns>
        public byte[] MakeFileHeader()
        {
            // 魔数前缀长度 | 块的大小 | 空闲列表头序号
            byte[] header = new byte[this.FileHeaderSize];

            // 魔数前缀
            FileHeaderPrefix.CopyTo(header, 0);
            int index = FileHeaderPrefix.Length;

            // 块的大小
            StoredHelper.Store(this.BlockSize, header, index);
            index += StoredConstants.IntegerLength;

            // 空闲列表头序号
            StoredHelper.Store(this.FreeBlockHead, header, index);
            index += StoredConstants.LongLength;

            return(header);
        }