Method: SevenZipRuby::SevenZipReader#extract_if

Defined in:
lib/seven_zip_ruby/seven_zip_reader.rb

#extract_if(dir = ".", &block) ⇒ Object

Extract entires of 7zip archive to local directory based on the block return value.

Args

dir

Directory to extract the archive to.

Examples

# Extract files whose size is less than 1024.
File.open("filename.7z", "rb") do |file|
  SevenZipRuby::SevenZipReader.open(file) do |szr|
    szr.extract_if("path_to_dir") do |entry|
      next entry.size < 1024
    end
  end
end

389
390
391
# File 'lib/seven_zip_ruby/seven_zip_reader.rb', line 389

def extract_if(dir = ".", &block)  # :yield: entry_info
  extract(entries.select(&block).map(&:index), dir)
end