[PR #1050] Add ACE archive support (read-only, stored entries) #1475

Open
opened 2026-01-29 22:20:44 +00:00 by claunia · 0 comments
Owner

Original Pull Request: https://github.com/adamhathcock/sharpcompress/pull/1050

State: closed
Merged: No


Adds support for reading ACE archives (version 1.0 and 2.0 formats) as requested in #875. Due to the proprietary nature of ACE compression algorithms, only stored (uncompressed) entries can be extracted.

Changes

  • New types: AceReader, AceEntry, AceEntryHeader, AceFilePart, AceVolume, AceFactory
  • ArchiveType enum: Added Ace value
  • CompressionType enum: Added Ace and Ace2 values for ACE 1.0 and 2.0 compression
  • Factory registration: AceFactory registered for automatic format detection via **ACE** signature at offset 7
  • ACE 2.0 support: Main header parsing for version detection, host OS, solid/multi-volume flags, and recovery record header handling

Usage

using var stream = File.OpenRead("archive.ace");
using var reader = AceReader.Open(stream);

while (reader.MoveToNextEntry())
{
    if (!reader.Entry.IsDirectory)
    {
        reader.WriteEntryToDirectory("output/", new ExtractionOptions { ExtractFullPath = true });
    }
}

Limitations

  • Read-only (no write support)

  • Only stored/uncompressed entries extractable

  • Compressed entries (ACE LZ77 and ACE 2.0 improved LZ77) throw NotSupportedException due to proprietary algorithms

  • No Archive API (reader-only, like Arj)

  • Fixes adamhathcock/sharpcompress#875

Original prompt

This section details on the original issue you should resolve

<issue_title>[Feature Request] ACE archive support</issue_title>
<issue_description>ACE archive support would be nice, especially for version 1 archives as that seems to be better documented. The ArchiveTeam wiki has good resources for ACE archives, including a link to example files and software that is able to extract it. http://fileformats.archiveteam.org/wiki/ACE</issue_description>

Comments on the Issue (you are @copilot in this section)


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

**Original Pull Request:** https://github.com/adamhathcock/sharpcompress/pull/1050 **State:** closed **Merged:** No --- Adds support for reading ACE archives (version 1.0 and 2.0 formats) as requested in #875. Due to the proprietary nature of ACE compression algorithms, only stored (uncompressed) entries can be extracted. ### Changes - **New types**: `AceReader`, `AceEntry`, `AceEntryHeader`, `AceFilePart`, `AceVolume`, `AceFactory` - **ArchiveType enum**: Added `Ace` value - **CompressionType enum**: Added `Ace` and `Ace2` values for ACE 1.0 and 2.0 compression - **Factory registration**: `AceFactory` registered for automatic format detection via `**ACE**` signature at offset 7 - **ACE 2.0 support**: Main header parsing for version detection, host OS, solid/multi-volume flags, and recovery record header handling ### Usage ```csharp using var stream = File.OpenRead("archive.ace"); using var reader = AceReader.Open(stream); while (reader.MoveToNextEntry()) { if (!reader.Entry.IsDirectory) { reader.WriteEntryToDirectory("output/", new ExtractionOptions { ExtractFullPath = true }); } } ``` ### Limitations - Read-only (no write support) - Only stored/uncompressed entries extractable - Compressed entries (ACE LZ77 and ACE 2.0 improved LZ77) throw `NotSupportedException` due to proprietary algorithms - No Archive API (reader-only, like Arj) - Fixes adamhathcock/sharpcompress#875 <!-- START COPILOT CODING AGENT SUFFIX --> <details> <summary>Original prompt</summary> > > ---- > > *This section details on the original issue you should resolve* > > <issue_title>[Feature Request] ACE archive support</issue_title> > <issue_description>ACE archive support would be nice, especially for version 1 archives as that seems to be better documented. The ArchiveTeam wiki has good resources for ACE archives, including a link to example files and software that is able to extract it. http://fileformats.archiveteam.org/wiki/ACE</issue_description> > > ## Comments on the Issue (you are @copilot in this section) > > <comments> > </comments> > </details> - Fixes adamhathcock/sharpcompress#875 <!-- START COPILOT CODING AGENT TIPS --> --- 💬 We'd love your input! Share your thoughts on Copilot coding agent in our [2 minute survey](https://gh.io/copilot-coding-agent-survey).
claunia added the pull-request label 2026-01-29 22:20:44 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/sharpcompress#1475