示例#1
0
        public void LoadFileStructure(TigerBinaryReader reader)
        {
            TigerFile = reader.ReadTigerFile();

            for (var i = 0; i < TigerFile.NumberOfFiles; i++)
            {
                TigerFile.TigerEntries.Add(reader.ReadTigerEntry());
            }
        }
示例#2
0
        public void ExtractFile(TigerEntry entry, string directory, TigerBinaryReader reader)
        {
            reader.BaseStream.Seek(entry.Offset, SeekOrigin.Begin);
            var content = reader.ReadBytes((int)entry.FileSize);

            string compoundName = directory + @"\" + entry.Hash.ToString("X16");

            Directory.CreateDirectory(Path.GetDirectoryName(compoundName) ?? throw new InvalidOperationException());

            using (BinaryWriter writer = new BinaryWriter(File.Open(compoundName, FileMode.Create)))
            {
                writer.Write(content);
            }
        }