# File lib/arr-pm/file.rb, line 96
  def extract(target)
    if !File.directory?(target)
      raise Errno::ENOENT.new(target)
    end
    
    extractor = IO.popen("#{tags[:payloadcompressor]} -d | (cd #{target}; cpio -i --quiet --make-directories)", "w")
    buffer = ""
    begin
        buffer.force_encoding("BINARY")
    rescue NoMethodError
        # Do Nothing
    end
    payload_fd = payload.clone
    loop do
      data = payload_fd.read(16384, buffer)
      break if data.nil? # eof
      extractor.write(data)
    end
    payload_fd.close
    extractor.close
  end