Add extraction for installshield executables. (#27)

* Add extractor for installshield executables.

* Add comment

* Fix intendation.

* Ensure PRs recursively pull

* Rebase

* Fix formatting for parsex

* newline before obj.name

* Changed while loop check to a position vs length check

* Specify type for chunkSize

* declare chunksize as a const int outside of the loop

* Open file writer with using

* Call fs.flush after every write.

* Improved chunk writing loop.

* Remove now-unecessary variable

* Properly handle extracting files of size greater than int32.

* Use long for overlay address

* create deserializer outside of loop.

* Move null check.

* Don't cache position.

---------

Co-authored-by: Matt Nadareski <mnadareski@outlook.com>
This commit is contained in:
HeroponRikiBestest
2025-10-23 15:38:51 -04:00
committed by GitHub
parent ed9ecf0da9
commit d5ab37a5a6
3 changed files with 174 additions and 2 deletions

View File

@@ -0,0 +1,25 @@
namespace SabreTools.Data.Models.InstallShieldExecutable
{
public class ExtractableFile
{
/// <summary>
/// Name of the file, only ASCII characters(?)
/// </summary>
public string? Name { get; set; }
/// <summary>
/// Path of the file, only ASCII characters(?), seems to usually use \ filepaths
/// </summary>
public string? Path { get; set; }
/// <summary>
/// Version of the file
/// </summary>
public string? Version { get; set; }
/// <summary>
/// Length of the file. Stored in the installshield executable as a string.
/// </summary>
public ulong Length { get; set; }
}
}