InstallShieldArchiveV3 model cleanup

This commit is contained in:
Matt Nadareski
2025-10-30 21:43:38 -04:00
parent af8b6906b6
commit d75a512ead
8 changed files with 21 additions and 29 deletions

View File

@@ -6,16 +6,16 @@
/// <summary>
/// Archive header information
/// </summary>
public Header? Header { get; set; }
public Header Header { get; set; }
/// <summary>
/// Directories found in the archive
/// </summary>
public Directory[]? Directories { get; set; }
public Directory[] Directories { get; set; }
/// <summary>
/// Files found in the archive
/// </summary>
public File[]? Files { get; set; }
public File[] Files { get; set; }
}
}

View File

@@ -6,4 +6,4 @@ namespace SabreTools.Data.Models.InstallShieldArchiveV3
public static readonly byte[] HeaderSignatureBytes = [0x13, 0x5D, 0x65, 0x8C];
}
}
}

View File

@@ -24,6 +24,6 @@ namespace SabreTools.Data.Models.InstallShieldArchiveV3
/// <summary>
/// Name as an ASCII string
/// </summary>
public string? Name;
public string Name;
}
}
}

View File

@@ -33,6 +33,6 @@ namespace SabreTools.Data.Models.InstallShieldArchiveV3
public byte VolumeStart;
[MarshalAs(UnmanagedType.AnsiBStr)]
public string? Name;
public string Name;
}
}
}

View File

@@ -50,4 +50,4 @@ namespace SabreTools.Data.Models.InstallShieldArchiveV3
public uint Reserved5;
}
}
}

View File

@@ -58,8 +58,7 @@ namespace SabreTools.Serialization.Wrappers
// Get the directory name
var dirName = Directories[dirIndex].Name;
if (dirName != null)
filename = Path.Combine(dirName, filename);
filename = Path.Combine(dirName, filename);
// Get and adjust the file offset
long fileOffset = file.Offset + DataStart;

View File

@@ -23,17 +23,10 @@ namespace SabreTools.Serialization.Wrappers
Print(builder, Model.Files);
}
private static void Print(StringBuilder builder, Header? header)
private static void Print(StringBuilder builder, Header header)
{
builder.AppendLine(" Header Information:");
builder.AppendLine(" -------------------------");
if (header == null)
{
builder.AppendLine(" No header");
builder.AppendLine();
return;
}
builder.AppendLine(header.Signature1, " Signature 1");
builder.AppendLine(header.Signature2, " Signature 2");
builder.AppendLine(header.Reserved0, " Reserved 0");
@@ -56,11 +49,11 @@ namespace SabreTools.Serialization.Wrappers
builder.AppendLine();
}
private static void Print(StringBuilder builder, Directory[]? entries)
private static void Print(StringBuilder builder, Directory[] entries)
{
builder.AppendLine(" Directories:");
builder.AppendLine(" -------------------------");
if (entries == null || entries.Length == 0)
if (entries.Length == 0)
{
builder.AppendLine(" No directories");
builder.AppendLine();
@@ -80,11 +73,11 @@ namespace SabreTools.Serialization.Wrappers
builder.AppendLine();
}
private static void Print(StringBuilder builder, File[]? entries)
private static void Print(StringBuilder builder, File[] entries)
{
builder.AppendLine(" Files:");
builder.AppendLine(" -------------------------");
if (entries == null || entries.Length == 0)
if (entries.Length == 0)
{
builder.AppendLine(" No files");
builder.AppendLine();

View File

@@ -20,16 +20,16 @@ namespace SabreTools.Serialization.Wrappers
#region Extension Properties
/// <inheritdoc cref="Header.DirCount"/>
public ushort DirCount => Model.Header?.DirCount ?? 0;
public ushort DirCount => Model.Header.DirCount;
/// <inheritdoc cref="Header.FileCount"/>
public ushort FileCount => Model.Header?.FileCount ?? 0;
public ushort FileCount => Model.Header.FileCount;
/// <inheritdoc cref="Archive.Directories"/>
public Data.Models.InstallShieldArchiveV3.Directory[] Directories => Model.Directories ?? [];
public Data.Models.InstallShieldArchiveV3.Directory[] Directories => Model.Directories;
/// <inheritdoc cref="Archive.Files"/>
public Data.Models.InstallShieldArchiveV3.File[] Files => Model.Files ?? [];
public Data.Models.InstallShieldArchiveV3.File[] Files => Model.Files;
/// <summary>
/// Map of all files to their parent directories by index
@@ -85,8 +85,8 @@ namespace SabreTools.Serialization.Wrappers
// Create the filename
string filename = Path.Combine(
Directories[dirIndex]?.Name ?? $"dir_{dirIndex}",
file.Name ?? $"file_{fileIndex}"
Directories[dirIndex].Name.Length == 0 ? $"dir_{dirIndex}" : Directories[dirIndex].Name,
file.Name.Length == 0 ? $"file_{fileIndex}" : file.Name
);
// Add to the map