internal static PackagedFileInfo CreateFromEntry(FileEntry13 entry, Stream dataStream)
{
var info = new PackagedFileInfo();
info.PackageStream = dataStream;
var nameLen = 0;
for (nameLen = 0; nameLen < entry.Name.Length && entry.Name[nameLen] != 0; nameLen++) { }
info.Name = Encoding.UTF8.GetString(entry.Name, 0, nameLen);
var compressionMethod = entry.Flags & 0x0F;
if (compressionMethod > 2 || (entry.Flags & ~0x7F) != 0)
{
var msg = String.Format("File '{0}' has unsupported flags: {1}", info.Name, entry.Flags);
throw new InvalidDataException(msg);
}
info.OffsetInFile = entry.OffsetInFile;
info.SizeOnDisk = entry.SizeOnDisk;
info.UncompressedSize = entry.UncompressedSize;
info.ArchivePart = entry.ArchivePart;
info.Flags = entry.Flags;
info.Crc = entry.Crc;
return info;
}