HOWTO · Ruby
Ruby List-Datei im Ordner
Dieser Artikel stellt verschiedene Möglichkeiten vor, alle Dateien in einem bestimmten Ordner in Ruby aufzulisten.
Auf dieser Seite
Dieser Artikel stellt verschiedene Möglichkeiten vor, alle Dateien in einem bestimmten Ordner in Ruby aufzulisten.
Erstellen Sie einen Musterordner
Bitte verwenden Sie diese Befehlszeilen, um eine Ordnerstruktur in Ihrem aktuellen Verzeichnis zu erstellen.
mkdir parent_folder
touch parent_folder/music_1.txt
touch parent_folder/music_2.txt
mkdir parent_folder/child_folder
touch parent_folder/child_folder/doc_1.txt
touch parent_folder/child_folder/doc_2.txt
Verwenden Sie Dir::[], um alle Dateien in einem Ordner aufzulisten
Verwenden Sie Dir[<path_to_folder>/*], es gibt ein Array zurück, das alle Dateinamen und Ordnernamen innerhalb von path_to_folder enthält.
Danach verwenden wir die File.file? -Methode, um die Dateinamen aus dem Ergebnis auszuwählen.
Beispiel:
files = Dir['parent_folder/*'].select { |path| File.file?(path) }
puts files
Ausgang:
parent_folder/music_1.txt
parent_folder/music_2.txt
Um Dateien rekursiv innerhalb von Unterordnern aufzulisten, können wir dieses Muster anwenden:
files = Dir['parent_folder/**/*'].select { |path| File.file?(path) }
puts files
Ausgang:
parent_folder/music_1.txt
parent_folder/music_2.txt
parent_folder/child_folder/doc_2.txt
parent_folder/child_folder/doc_1.txt
Verwenden Sie Dir.glob, um alle Dateien in einem Ordner aufzulisten
Der Aufruf von Dir.glob entspricht dem Aufruf von Dir[<path_to_folder>].
Beispiel:
files = Dir.glob('parent_folder/**/*').select { |path| File.file?(path) }
puts files
Ausgang:
parent_folder/music_1.txt
parent_folder/music_2.txt
parent_folder/child_folder/doc_2.txt
parent_folder/child_folder/doc_1.txt