From 7d50e0e1c5e112f3cc29938ae92967e4e07cf1ff Mon Sep 17 00:00:00 2001 From: Matt Nadareski Date: Wed, 11 Dec 2024 21:17:39 -0500 Subject: [PATCH] Fix filename map --- .../Wrappers/InstallShieldArchiveV3.cs | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/SabreTools.Serialization/Wrappers/InstallShieldArchiveV3.cs b/SabreTools.Serialization/Wrappers/InstallShieldArchiveV3.cs index df58e49a..0f7a6f4f 100644 --- a/SabreTools.Serialization/Wrappers/InstallShieldArchiveV3.cs +++ b/SabreTools.Serialization/Wrappers/InstallShieldArchiveV3.cs @@ -74,12 +74,24 @@ namespace SabreTools.Serialization.Wrappers // Build the file map _fileNameMap = []; - foreach (var file in Files) + for (int fileIndex = 0; fileIndex < Files.Length; fileIndex++) { - if (file?.Name == null) + // Get the current file + var file = Files[fileIndex]; + + // Get the parent directory + int dirIndex = FileDirMap[fileIndex]; + if (dirIndex < 0 || dirIndex >= DirCount) continue; - _fileNameMap[file.Name] = file; + // Create the filename + string filename = Path.Combine( + Directories[dirIndex]?.Name ?? $"dir_{dirIndex}", + file.Name ?? $"file_{fileIndex}" + ); + + // Add to the map + _fileNameMap[filename] = file; } return _fileNameMap;