Ruby List-Datei im Ordner

Stewart Nguyen 21 Juni 2023
  1. Erstellen Sie einen Musterordner
  2. Verwenden Sie Dir::[], um alle Dateien in einem Ordner aufzulisten
  3. Verwenden Sie Dir.glob, um alle Dateien in einem Ordner aufzulisten
Ruby List-Datei im Ordner

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

Verwandter Artikel - Ruby File