class

Compress::Zip::Reader

Inherits Reference / Object

Reads zip file entries sequentially from an IO.

NOTE: Entries might not have correct values for crc32, compressed_size, uncompressed_size and comment, because when reading a zip file directly from a stream this information might be stored later in the zip stream. If you need this information, consider using Zip::File.

Example

require "compress/zip"

Compress::Zip::Reader.open("./file.zip") do |zip|
  zip.each_entry do |entry|
    p entry.filename
    p entry.file?
    p entry.dir?
    p entry.io.gets_to_end
  end
end

Constructors

new(io : IO, sync_close : Bool = false)

Creates a new reader from the given io.

Source
new(filename : Path | String)

Creates a new reader from the given filename.

Source

Class methods

open(io : IO, sync_close = false, &)

Creates a new reader from the given io, yields it to the given block, and closes it at the end.

Source
open(filename : Path | String, &)

Creates a new reader from the given filename, yields it to the given block, and closes it at the end.

Source

Instance methods

close

Closes this zip reader.

Source
closed?

Returns true if this reader is closed.

Source
each_entry

Yields each entry in the zip to the given block.

Source
next_entry

Reads the next entry in the zip, or nil if there are no more entries.

After reading a next entry, previous entries can no longer be read (their IO will be closed.)

Source
sync_close=(sync_close : Bool)

Whether to close the enclosed IO when closing this reader.

Source
sync_close?

Whether to close the enclosed IO when closing this reader.

Source

Nested types