Ruby List-Datei im Ordner
Stewart Nguyen
21 Juni 2023
- Erstellen Sie einen Musterordner
-
Verwenden Sie
Dir::[]
, um alle Dateien in einem Ordner aufzulisten -
Verwenden Sie
Dir.glob
, um alle Dateien in einem Ordner aufzulisten
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