Method: Rex::Zip::Archive#add_r

Defined in:
lib/rex/zip/archive.rb

#add_r(dir) ⇒ Object

Recursively adds a directory of files into the archive.



23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/rex/zip/archive.rb', line 23

def add_r(dir)
  path = File.dirname(dir)
  Dir[File.join(dir, "**", "**")].each do |file|
    relative = file.sub(/^#{path.chomp('/')}\//, '')
    if File.directory?(file)
      @entries << Entry.new(relative.chomp('/') + '/', '', @compmeth, nil, EFA_ISDIR, nil, nil)
    else
      contents = File.read(file, :mode => 'rb')
      @entries << Entry.new(relative, contents, @compmeth, nil, nil, nil, nil)
    end
  end
end