# NAME
Path::Tiny::Archive::Zip - Zip/unzip add-on for file path utility
# VERSION
version 0.004
# SYNOPSIS
use Path::Tiny
use Path::Tiny::Archive::Zip qw( :const );
path("foo/bar.txt")->zip("foo/bar.zip", COMPRESSION_BEST);
path("foo/bar.zip")->unzip("baz");
# DESCRIPTION
This module provides two additional methods for [Path::Tiny](
https://metacpan.org/pod/Path::Tiny) for working with
zip archives.
# METHODS
## zip
path("/tmp/foo.txt")->zip("/tmp/foo.zip");
path("/tmp/foo")->zip("/tmp/foo.zip");
Creates a zip archive and appends a file or directory tree to it. Returns the
path to the zip archive or undef.
You can choose different compression levels.
path("/tmp/foo")->zip("/tmp/foo.zip", COMPRESSION_FASTEST);
The levels given can be:
- `0` or `COMPRESSION_NONE`: No compression.
- `1` to `9`: 1 gives the best speed and worst compression, and 9 gives
the best compression and worst speed.
- `COMPRESSION_FASTEST`: This is a synonym for level 1.
- `COMPRESSION_BEST`: This is a synonym for level 9.
- `COMPRESSION_DEFAULT`: This gives a good compromise between speed and
compression, and is currently equivalent to 6 (this is in the zlib code). This
is the level that will be used if not specified.
## unzip
path("/tmp/foo.zip")->unzip("/tmp/foo");
Extracts a zip archive to specified directory. Returns the path to the
destination directory or undef.
# AUTHOR
Denis Ibaev <
[email protected]>
# COPYRIGHT AND LICENSE
This software is copyright (c) 2021 by Denis Ibaev.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.