Module | Zip::ZipFileSystem |
In: |
lib/zip/zipfilesystem.rb
|
The ZipFileSystem API provides an API for accessing entries in a zip archive that is similar to ruby‘s builtin File and Dir classes.
Requiring ‘zip/zipfilesystem’ includes this module in ZipFile making the methods in this module available on ZipFile objects.
Using this API the following example creates a new zip file my.zip containing a normal entry with the name first.txt, a directory entry named mydir and finally another normal entry named second.txt
require 'zip/zipfilesystem' Zip::ZipFile.open("my.zip", Zip::ZipFile::CREATE) { |zipfile| zipfile.file.open("first.txt", "w") { |f| f.puts "Hello world" } zipfile.dir.mkdir("mydir") zipfile.file.open("mydir/second.txt", "w") { |f| f.puts "Hello again" } }
Reading is as easy as writing, as the following example shows. The example writes the contents of first.txt from zip archive my.zip to standard out.
require 'zip/zipfilesystem' Zip::ZipFile.open("my.zip") { |zipfile| puts zipfile.file.read("first.txt") }