428 Stimmen

Namen aller Dateien aus einem Ordner mit Ruby abrufen

Ich möchte alle Dateinamen aus einem Ordner mit Ruby erhalten.

624voto

Ian Eccles Punkte 7067

Sie haben auch die Möglichkeit, eine Abkürzung zu wählen

Dir["/path/to/search/*"]

und wenn Sie alle Ruby-Dateien in einem beliebigen Ordner oder Unterordner finden wollen:

Dir["/path/to/search/**/*.rb"]

205voto

Željko Filipin Punkte 54696
Dir.entries(folder)

Beispiel:

Dir.entries(".")

Fuente: http://ruby-doc.org/core/classes/Dir.html#method-c-entries

101voto

Emiliano Poggi Punkte 23692

Die folgenden Schnipsel zeigen genau die Namen der Dateien innerhalb eines Verzeichnisses, wobei Unterverzeichnisse und "." , ".." gepunkteten Ordnern:

Dir.entries("your/folder").select { |f| File.file? File.join("your/folder", f) }

50voto

konsolebox Punkte 66082

Um alle Dateien (ausschließlich Dateien) rekursiv abzurufen:

Dir.glob('path/**/*').select { |e| File.file? e }

Oder irgendetwas, das kein Verzeichnis ist ( File.file? würde unregelmäßige Dateien ablehnen):

Dir.glob('path/**/*').reject { |e| File.directory? e }

Alternative Lösung

Verwendung von Find#find über eine musterbasierte Nachschlagemethode wie Dir.glob tatsächlich besser ist. Siehe diese Antwort auf "One-liner to Recursively List Directories in Ruby?" .

27voto

In Ruby 2.5 können Sie nun Dir.children . Es erhält Dateinamen als Array mit Ausnahme von "." und ".."

Dir.children("testdir")   #=> ["config.h", "main.rb"]

http://ruby-doc.org/core-2.5.0/Dir.html#method-c-children

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X