class

Compress::Zip::File

Inherits Reference / Object

Provides random read access to zip file entries stores inside a File or an IO::Memory.

Example

require "compress/zip"

Compress::Zip::File.open("./file.zip") do |file|
  # Iterate through all entries printing their filename and contents
  file.entries.each do |entry|
    p entry.filename
    entry.open do |io|
      p io.gets_to_end
    end
  end

  # Random access to entries by filename is also provided
  entry = file["some_file.txt"]
  entry.open do |io|
    p io.gets_to_end
  end
end

Constructors

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

Opens a Zip::File for reading from the given io.

Source
new(filename : Path | String)

Opens a Zip::File for reading from the given filename.

Source

Class methods

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

Opens a Zip::File for reading from the given io, yields it to the given block, and closes it at the end.

Source
open(filename : Path | String, &)

Opens a Zip::File for reading from the given filename, yields it to the given block, and closes it at the end.

Source

Instance methods

[](filename : Path | String) : Entry

Returns the entry that has the given filename, or raises KeyError if no such entry exists.

Source
[]?(filename : Path | String) : Entry | Nil

Returns the entry that has the given filename, or nil if no such entry exists.

Source
close

Closes this zip file.

Source
closed?

Returns true if this zip file is closed.

Source
comment

Returns the zip file comment.

Source
entries

Returns all entries inside this zip file.

Source

Nested types