diff --git a/SabreTools.Serialization/Deserializers/InstallShieldArchiveV3.cs b/SabreTools.Serialization/Deserializers/InstallShieldArchiveV3.cs index 7e0d4f6c..5fc303c6 100644 --- a/SabreTools.Serialization/Deserializers/InstallShieldArchiveV3.cs +++ b/SabreTools.Serialization/Deserializers/InstallShieldArchiveV3.cs @@ -1,5 +1,6 @@ using System.Collections.Generic; using System.IO; +using System.Text; using SabreTools.IO.Extensions; using SabreTools.Models.InstallShieldArchiveV3; @@ -114,7 +115,17 @@ namespace SabreTools.Serialization.Deserializers /// Filled directory on success, null on error public static Models.InstallShieldArchiveV3.Directory? ParseDirectory(Stream data) { - return data.ReadType(); + var directory = new Models.InstallShieldArchiveV3.Directory(); + + directory.FileCount = data.ReadUInt16(); + directory.ChunkSize = data.ReadUInt16(); + + // TODO: Is there any equivilent automatic type for UInt16-prefixed ANSI? + ushort nameLength = data.ReadUInt16(); + byte[] nameBytes = data.ReadBytes(nameLength); + directory.Name = Encoding.ASCII.GetString(nameBytes); + + return directory; } ///