Table of Contents

Class BrowserEntryRouting

Namespace
Archiver.App.Core
Assembly
Archiver.App.Core.dll

T-F242 items 3, 4 and 6: the double-click decisions of the pending list and the Archive Browser, and the containment check for a file extracted into a temp scope.

public static class BrowserEntryRouting
Inheritance
BrowserEntryRouting
Inherited Members

Methods

DecideBrowserRow(bool, bool, bool, string, Func<bool>)

An Archive Browser row. Outside an archive (T-F107) a file opens only when it is a real archive; inside one an archive entry drills in (T-F98), a previewable one previews (T-F97) and anything else is extracted after a warning (T-F109).

public static RowOpenAction DecideBrowserRow(bool isBusy, bool insideArchive, bool isFolder, string name, Func<bool> isArchiveOnDisk)

Parameters

isBusy bool
insideArchive bool
isFolder bool
name string
isArchiveOnDisk Func<bool>

Returns

RowOpenAction

DecidePendingRow(bool, bool, Func<bool>)

A pending-list row: only a real archive on disk opens (magic bytes, the same ground truth ExtractionRouter uses — never the extension); nothing while an operation runs.

public static RowOpenAction DecidePendingRow(bool isBusy, bool isFolder, Func<bool> isArchiveOnDisk)

Parameters

isBusy bool
isFolder bool
isArchiveOnDisk Func<bool>

Returns

RowOpenAction

OpensProtectedArchive(bool, bool, bool, string)

T-F275 step 3c: a row that DecidePendingRow(bool, bool, Func<bool>) or DecideBrowserRow(bool, bool, bool, string, Func<bool>) leaves alone opens the archive it protects when it is a PAR2 file on disk (in the pending list, or in a real folder). Inside an archive a .par2 entry is an ordinary entry.

public static bool OpensProtectedArchive(bool isBusy, bool insideArchive, bool isFolder, string name)

Parameters

isBusy bool
insideArchive bool
isFolder bool
name string

Returns

bool

ResolveInScope(string, string)

Where an entry extracted into scopeDir landed, or null when its name would point outside the scope (an absolute or .. entry name) — T-F242 item 6: the path is handed to ShellExecute, so it must never name a file Pakko did not write.

public static string? ResolveInScope(string scopeDir, string entryPath)

Parameters

scopeDir string
entryPath string

Returns

string