Archive for the 'server' Category

Page 2 of 2

Ruby on Rails: TAR-Archive in einem Verzeichnis entpacken [Extract tar archives in a directory]

Hier eine Lösungsmöglichkeit, um in einem Verzeichnis nach allen Tar-Dateien zu suchen und die Inhalte im selbigen zu entpacken (durch leichte Modifikation natürlich anpassbar). Anschließend werden die entpackten Archive gelöscht. Da der UNIX “tar”-Befehl verwendet wird, geht das ganze nur auf UNIX Systemen. Hinweis: Bei mehr als 2000-3000 Dateien im Verzeichnis würde ich das nicht so anwenden, da zu uneffizient/langsam. Aber das ist ein anderes Thema :)

Wie immer sind Verbesserungsvorschläge (Kommentare) erwünscht. Aus pragmatischen Gründen wird dann der folgende Code jedes Mal entsprechend erneuert:

class ApplicationController < ApplicationController::Base
  def untar
    result = ''
    Dir.open(PATH_TO_DIR).each do |file|
      next if file !~ /tar$/
      result += 'Extracting ' + file + '... '
      if system('cd ' + PATH_TO_DIR + '; tar -xf ' + file)
        result += 'done!<br/>Deleting ' + file + '... '
        if FileUtils::rm_r(PATH_TO_DIR + file)
          result += 'done!<br />'
        else
          result += 'error!<br />'
        end
      else
        result += 'error!<br />'
      end
      processed = true
    end
    result += '<br />Extraction completed!'
    result = 'No compressed files found.' if processed.nil?
    render(:text => result)
  end
end

PS: Manuel, vielen Dank für dieses WP! Sehr sehr schön. Viele Plugins, schöne Bilder und einfach schön! Wie wär’s, wenn du jetzt noch GANZ SCHNELL ein Ruby-Syntax-Highlight installierst :) DANKE!