Zachary Dremann
2b50419947
Add some simple crc32 reader tests
2020-05-15 17:10:58 -04:00
Manu Thambi
91c93579f2
Added ZipArchive::file_names() method to return an iterator of all the file names
...
in the archive.
Using ZipArchive::by_index() to obtain a list of files is slow, if the files are
not read, because it creates the decompressor internally before returning ZipFile.
Fixes #122
2020-01-14 09:58:12 -05:00
Mathijs van de Nes
80957e2db9
Merge branch 'tm_mon-bounds-fix' of https://github.com/johannesmaibaum/zip-rs
2020-01-11 13:12:04 +01:00
Manu Thambi
69ad3bd2a4
Enable reading/writing ZIP archive comment.
2020-01-09 11:58:35 -05:00
Mathijs van de Nes
a85e3eb809
Fix error checking tm_mon in time::Tm conversion
...
Fixes #128
2020-01-06 22:27:46 +01:00
Johannes Maibaum
b2a669bd33
Fix bounds check in DateTime::from_time()
...
`::time::Tm.tm_mon` has number range [0, 11], see:
https://docs.rs/time/0.1.42/time/struct.Tm.html#structfield.tm_mon
2020-01-03 10:04:58 +01:00
Johannes Maibaum
120732780f
Add bounds test for DateTime::from_time()
...
Fails for 1980-01-01 00:00:00.
2020-01-03 10:04:05 +01:00
Lachezar Lechev
29517e9a6b
run cargo fix --edition-idioms
and manually fix other things
2019-11-11 09:20:31 +02:00
Lachezar Lechev
99dba6b397
run cargo fix --edition
2019-11-11 08:58:59 +02:00
Benjamin Richner
744bb41b43
Ignore password if file not encrypted. Clean up code structure.
2019-10-20 00:58:07 +02:00
Benjamin Richner
2a5112386c
Remove useless return in ZipCryptoReaderValid::read()
2019-10-19 23:44:20 +02:00
Benjamin Richner
1f87098e57
Enable decryption with file reader by_name()
2019-10-19 23:43:33 +02:00
Benjamin Richner
f9f5029fc1
Added ZipCrypto support for stored and deflated files
2019-10-19 18:59:10 +02:00
Mathijs van de Nes
f9c2c64faa
Merge branch 'flate2' of https://github.com/jonpas/zip-rs
2019-08-14 20:40:00 +02:00
Michael Lamparski
907e13b5b6
impl Default for write::FileOptions
2019-07-22 13:24:34 -04:00
Joel Depooter
cd867ecdc2
Add ZipFile::header_start
...
This function returns the offset of the local zip header for a ZipFile object
2019-07-02 16:27:45 -07:00
jonpas
c30d7c3d10
Remove _ - updated rustc
2019-06-18 12:32:44 +02:00
jonpas
14f77b390a
Use deflate as feature name
2019-06-17 21:36:38 +02:00
jonpas
b171b915f8
Switch to flate2
2019-06-14 15:25:00 +02:00
jonpas
6f9150d3dc
Fix compilation error
2019-06-14 15:02:41 +02:00
Mathijs van de Nes
57c8444d8e
Simplify test code of compression
2019-04-06 17:58:12 +02:00
Mathijs van de Nes
256da313b4
Remove warning
2019-04-06 17:23:57 +02:00
Mathijs van de Nes
2314abc307
Merge pull request #96 from damiencollard/file_and_dir_predicates
...
Add ZipFile::is_dir() and ZipFile::is_file().
2019-04-06 17:07:55 +02:00
Mathijs van de Nes
cdbdc008fc
Allow a Path to be used as a file/directory name
...
Instead of using string directly, also accept a Path object. This moves
the responsibility from using the correct path separator and not using
invalid path components to this library.
2019-04-06 16:30:02 +02:00
unknown
8a24ef994f
Fix bounds check in DateTime::from_time
2019-03-05 21:43:59 -06:00
Damien Collard
b9af51e654
Add ZipFile::is_dir() and ZipFile::is_file().
...
The naming matches that of std::fs::Metadata.
An entry is determined to be a directory based on the presence of
a trailing path separator, i.e. '/' or '\'.
This patch adds a small test zip containing files and directories.
Their names match their type so as to make testing easy.
2019-01-27 15:57:30 +01:00
Mathijs van de Nes
659c9186c6
Remove unused import
2018-12-06 19:55:29 +01:00
Mathijs van de Nes
ad7a0fd4e5
Fix for rust 1.20.0
2018-11-17 12:10:23 +01:00
Mathijs van de Nes
b6e12e9451
Remove TODO
...
Changed my mind, API seems good
2018-11-17 11:53:53 +01:00
Mathijs van de Nes
803a4d7521
Do not allow writing to a directory
2018-11-17 11:53:37 +01:00
Mathijs van de Nes
cfbcd768d3
Fix bug in last_modified_time
2018-11-17 11:30:00 +01:00
Mathijs van de Nes
4fd5c9e509
Update DateTime API
2018-11-17 11:08:41 +01:00
Mathijs van de Nes
f94d4b7a78
Change date api
...
Remove msdos_time dependency, and introduce simplified DateTime object.
This object does bounds checking to see if dates are representable in
msdos.
2018-11-17 10:26:25 +01:00
Sam Rijs
8ae6d81ab9
use crc32fast crate for checksumming
2018-11-14 00:44:34 +11:00
Mathijs van de Nes
4ae1db992c
Merge branch 'add-libflate' of https://github.com/xmclark/zip-rs
2018-11-13 10:33:16 +01:00
Mackenzie Clark
6528ea63d2
use the fully qualified decoder name
2018-11-09 16:20:40 -08:00
Sam Rijs
a9a3fb521e
Defer conversion to time::Tm on read
2018-11-07 00:06:42 +11:00
Sam Rijs
9e8747872b
Defer parsing of local file header
2018-11-06 23:14:23 +11:00
Mackenzie Clark
c05b6c2317
add libflate feature
2018-11-04 10:12:21 -08:00
Mathijs van de Nes
bb38674a14
Add archive_offset after processing extra fields
...
This ensures that the value will still be 0xFFFFFFFF before parsing a
zip64 extra field, and that the correction will also apply after the
parsing.
2018-10-17 11:45:41 +02:00
Mathijs van de Nes
c286a8ba16
Zip64: also support a large header_start
2018-10-17 11:39:15 +02:00
Mathijs van de Nes
a1d579b146
Silence warnings about AsciiExt
...
Some supported rust versions still require this import
2018-10-16 17:47:48 +02:00
Mathijs van de Nes
dbb871245b
Fix parse_extra_field for zip64
...
The specification states that fields are only present when their
corresponding entry in the central directory is set to 0xFFFFFFFF.
2018-10-16 17:44:53 +02:00
Benedikt Rascher-Friesenhausen
804cfea51c
Replace try!
macros with ?
operator calls
...
The `?` operator exists since Rust version 1.13.0 and has since become the
standard and recommended variant over the `try!` macro (see
https://doc.rust-lang.org/std/macro.try.html where it is explicitly mentioned to
use the `?` operator instead of the `try!` macro).
I think it is especially useful to replace the `try!` usages throughout the
examples (since new users might not be familiar with the `try!` macro at all).
2018-10-02 23:12:35 +02:00
Mathijs van de Nes
b23200d4a1
Append a slash to directory names
...
If a directory name does not end with a slash, append it to it when
writing a zip file. This way we can ensure it is distuinguishable from
an empty file.
2018-08-15 21:54:24 +02:00
Mathijs van de Nes
1c2024c554
Derivce Clone for ZipArchive
2018-06-22 15:47:29 +02:00
Mathijs van de Nes
2fa4111042
Fix an issue parsing zip64 files
...
Offset to the start of central directory may be 0xFFFFFFFF if it is a
Zip64 file. Previously, that value was used when calculating the archive
offset. The value will now be ignored if the Zip64 central directory
could be located.
2018-06-22 15:16:04 +02:00
Johan Andersson
0b222aa958
Remove redundant type specification
2018-06-20 01:38:43 +02:00
Johan Andersson
d51a4fc1d0
Fix file name sanitization for incompatible path separators.
...
Zip files can contain both / and \ as separators regardless of the OS and as we want to return a sanitized PathBuf that only supports the OS separator on the let's convert incompatible separators to compatible ones.
If one doesn't do this then PathBufs will be returned that can have entire paths in the file name such as "src\\lib.rs" on Linux/Mac, instead of srv / lib.rs as 3 separate components.
2018-06-20 01:31:46 +02:00
Mathijs van de Nes
86d9d20884
Calculate data_start after parse_extra_field
...
Some extra fields may alter offsets, e.g. Zip64.
2018-06-17 15:23:19 +02:00