Erhalten Sie sofort Unterverzeichnisse in Ruby
Frage
Ich versuche, einen einfachen Ruby-Skript zu schreiben, die eine Datei auf die unmittelbaren Verzeichnisse eines Verzeichnisses kopiert. Wie würde ich nur die unmittelbaren Unterverzeichnisse?
Lösung
Dir.glob("**/")
wird ein Array aller Pfade unterhalb des aktuellen Verzeichnisses zurück. Von dort können Sie die Liste filtern und eine Datei mit File.copy(from, to)
kopieren
Andere Tipps
Sie nur Angenommen, wollte die sofort Unterverzeichnisse, könnten Sie Dir['*/']
(die Micheal Sepcot der und glenra die Antworten kombiniert).
Wenn Sie meinen, alles finden sofort Unterverzeichnisse (nur eine Ebene unterhalb wo Sie sind), versuchen Sie dies:
Dir.chdir("/some/path/you/want/to/check/below")
subdir_list=Dir["*"].reject{|o| not File.directory?(o)}
Das heißt: Verzeichnis wechseln irgendwo, eine Reihe von Dateien gibt, weisen diese Array-Elemente gefunden konstruieren, die keine Verzeichnisse sind, und die daraus gewonnenen Ergebnisse gekeult arrray
. Wahrscheinlich der beste Weg, um mit Dateien in Ruby umzugehen, ist