public interface IRarArchiveService
public sealed class ArchiveEntry
public string Path get; init; // e.g. "images/logo.png" public long Size get; init; public DateTime ModifiedUtc get; init; public ArchiveEntryType EntryType get; init; public bool IsEncrypted get; init; public double CompressionRatio => (double)CompressedSize / Size; public long? CompressedSize get; init; ali editor 4.2 full rar
// Returns a memory stream for previewable content (image, text, pdf). Task<Stream?> PreviewAsync(string rarPath, string entryPath, string? password = null, CancellationToken ct = default); Task<Stream
Feel free to cherry‑pick the parts that are most relevant to your team, or let me know if you’d like deeper detail on any section. 1.1 Title “Integrated RAR Archive Viewer & Extractor” 1.2 Problem Statement Users frequently need to open, preview, or extract files from .rar archives while editing documents (e.g., inserting images from an archive, pulling in code snippets, etc.). Currently they must leave Ali Editor, open a third‑party extractor, and then import the extracted files—a workflow that is clunky and error‑prone. 1.3 Goal Make .rar handling a first‑class, in‑app experience : Currently they must leave Ali Editor, open a
// Extract selected entries to destFolder. Task ExtractAsync(string rarPath, IEnumerable<string> entryPaths, string destFolder, IProgress<double>? progress = null, string? password = null, CancellationToken ct = default);
I’ll walk you through the entire product‑development cycle— from the initial idea to the final release— and give you concrete artefacts (specs, UI mock‑ups, data‑model changes, API contracts, sample code, test‑plan, and rollout checklist).