Beispiel #1
0
        public FileStructure(string _filename, byte[] data)
        {
            Version          = 0;
            Flags            = 0;
            CompressionMode  = FileCompressionMode.Uncompressed;
            ModificationTime = 0;
            ModificationDate = 0;
            CRC32            = (int)Cryptography.Crc32Algorithm.Compute(data);
            CompressedSize   = -1;
            UncompressedSize = -1;
            FilenameLength   = (short)_filename.Length;

            //TODO: Calculate this value, make sure alignment to 0x1000
            ExtraLength = 0;

            Filename = _filename;
            Extra    = new FileStructureExtraData(_filename, data);
        }
Beispiel #2
0
        public FileStructure(Stream stream, CustomBinaryReader reader)
        {
            if ((stream.Position - 4) % 0x1000 != 0)
            {
                throw new Exception("File Data Section Alignment Error (Pre Read)");
            }

            Version          = reader.ReadInt16();
            Flags            = reader.ReadInt16();
            CompressionMode  = (FileCompressionMode)reader.ReadInt16();
            ModificationTime = reader.ReadUInt16();
            ModificationDate = reader.ReadUInt16();
            CRC32            = reader.ReadInt32();
            CompressedSize   = reader.ReadInt32();
            UncompressedSize = reader.ReadInt32();
            FilenameLength   = reader.ReadInt16();
            ExtraLength      = reader.ReadInt16();

            Filename = reader.ReadString(FilenameLength);
            Extra    = new FileStructureExtraData(stream, reader, ExtraLength);
        }