diff --git a/SabreTools.Serialization/Wrappers/InstallShieldCabinet.cs b/SabreTools.Serialization/Wrappers/InstallShieldCabinet.cs index 95b9222a..f1f011cf 100644 --- a/SabreTools.Serialization/Wrappers/InstallShieldCabinet.cs +++ b/SabreTools.Serialization/Wrappers/InstallShieldCabinet.cs @@ -1,5 +1,6 @@ using System; using System.IO; +using System.Text.RegularExpressions; using SabreTools.Models.InstallShieldCabinet; namespace SabreTools.Serialization.Wrappers @@ -135,6 +136,29 @@ namespace SabreTools.Serialization.Wrappers #endregion + #region Cabinet Set + + /// + /// Create the generic filename pattern to look for from the input filename + /// + /// String representing the filename pattern for a cabinet set, null on error + public static string? CreateFilenamePattern(string filename) + { + string? pattern = null; + if (string.IsNullOrEmpty(filename)) + return pattern; + + string? directory = Path.GetDirectoryName(Path.GetFullPath(filename)); + if (directory != null) + pattern = Path.Combine(directory, Path.GetFileNameWithoutExtension(filename)); + else + pattern = Path.GetFileNameWithoutExtension(filename); + + return new Regex(@"\d+$").Replace(pattern, string.Empty); + } + + #endregion + #region Component ///