NAME
Archive::SCS::Zip - ZIP format handler
SYNOPSIS
my $path = Path::Tiny->new('.../mod.scs');
my $archive = Archive::SCS::Zip->new(path => $path)->mount;
$archive->read_dir_tree;
my @contents = sort $archive->list_dirs, $archive->list_files;
my $hash = Archive::SCS::CityHash::cityhash64('manifest.sii');
my $data = $archive->read_entry($hash);
DESCRIPTION
Represents an SCS archive stored in ZIP file format.
Hash values used with this module must be in the internal format (currently, a 16-byte hex scalar in network byte order).
METHODS
entries
$entry_hashes = $archive->entries;
is_mounted
$bool = $archive->is_mounted;
handles_path
$bool = Archive::SCS::Zip->handles_file($fh, $header);
list_dirs
@directories = $archive->list_dirs;
list_files
@files = $archive->list_files;
mount
$archive = $archive->mount;
new
$archive = Archive::SCS::Zip->new(file => $path_tiny);
path
$path_tiny = $archive->path;
read_dir_tree
$archive->read_dir_tree;
read_entry
$data = $archive->read_entry($hash);
unmount
$archive->unmount;
LIMITATIONS
Mounting an archive reads all contents into memory, which can be inefficient for large ZIP files on slow disks.
Some invalid (and, rarely, valid) ZIP files that are accepted by SCS's software cannot be mounted by this module. However, all plain ZIP files that conform to the "appnote" spec should work just fine.
AUTHOR
COPYRIGHT
This software is copyright (c) 2025 by nautofon.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.