From 7eb401efeda89ca852dd7c464f76d927c0590dd8 Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Wed, 11 Dec 2024 14:04:29 -0500 Subject: [PATCH] Port obvious things from UnshieldSharp --- .../Wrappers/InstallShieldArchiveV3.cs | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/SabreTools.Serialization/Wrappers/InstallShieldArchiveV3.cs b/SabreTools.Serialization/Wrappers/InstallShieldArchiveV3.cs index 37534625..ebfe5629 100644 --- a/SabreTools.Serialization/Wrappers/InstallShieldArchiveV3.cs +++ b/SabreTools.Serialization/Wrappers/InstallShieldArchiveV3.cs @@ -1,3 +1,4 @@ +using System.Collections.Generic; using System.IO; using SabreTools.Models.InstallShieldArchiveV3; @@ -12,6 +13,41 @@ namespace SabreTools.Serialization.Wrappers #endregion + #region Extension Properties + + /// + public Models.InstallShieldArchiveV3.Directory[] Directories => Model.Directories ?? []; + + /// + public Models.InstallShieldArchiveV3.File[] Files => Model.Files ?? []; + + /// + /// Map of all directories found in the archive + /// + public Dictionary FileMap + { + get + { + // Build the file map if not already + if (_fileMap == null) + { + _fileMap = []; + foreach (var file in Model.Files ?? []) + { + if (file?.Name == null) + continue; + + _fileMap[file.Name] = file; + } + } + + return _fileMap; + } + } + private Dictionary? _fileMap = null; + + #endregion + #region Constructors ///