Start porting some functionality

This commit is contained in:
Matt Nadareski
2025-08-29 09:58:40 -04:00
parent a5609a7a82
commit b3499984b3

View File

@@ -87,6 +87,15 @@ namespace SabreTools.Serialization.Wrappers
#endregion
#region Extraction State
/// <summary>
/// Base filename path for related CAB files
/// </summary>
private string? _filenamePattern;
#endregion
#region Constants
/// <summary>
@@ -238,6 +247,14 @@ namespace SabreTools.Serialization.Wrappers
return set;
}
/// <summary>
/// Open the numbered cabinet set volume
/// </summary>
/// <param name="volumeId">Volume ID, 1-indexed</param>
/// <returns>Wrapper representing the volume on success, null otherwise</returns>
public InstallShieldCabinet? OpenVolume(ushort volumeId)
=> OpenVolume(_filenamePattern, volumeId);
/// <summary>
/// Open the numbered cabinet set volume
/// </summary>
@@ -271,6 +288,15 @@ namespace SabreTools.Serialization.Wrappers
return volume;
}
/// <summary>
/// Open a cabinet file for reading
/// </summary>
/// <param name="index">Cabinet part index to be opened</param>
/// <param name="suffix">Cabinet files suffix (e.g. `.cab`)</param>
/// <returns>A Stream representing the cabinet part, null on error</returns>
public Stream? OpenFileForReading(int index, string suffix)
=> OpenFileForReading(_filenamePattern, index, suffix);
/// <summary>
/// Open a cabinet file for reading
/// </summary>