Comme d'autres l'ont dit, Dir.foreach
est une bonne option ici. Toutefois, notez que Dir.entries
et Dir.foreach
afficheront toujours .
et ..
(les répertoires actuel et parent). Vous ne voudrez généralement pas travailler sur eux, afin que vous puissiez faire quelque chose comme ceci:
Dir.foreach('/path/to/dir') do |item|
next if item == '.' or item == '..'
# do work on real items
end
Dir.foreach
et Dir.entries
montrent également tous les éléments du répertoire - cachés et non cachés semblables. C'est souvent ce que vous voulez, mais si ce n'est pas le cas, vous devez faire quelque chose pour ignorer les fichiers et répertoires cachés.
Alternativement, vous pouvez regarder dans Dir.glob
qui fournit simplement les jokers:
Dir.glob('/path/to/dir/*.rb') do |rb_file|
# do work on files ending in .rb in the desired directory
end
Pouvez-vous spécifier ce qui s'est passé lorsque vous avez essayé de le faire fonctionner? Quel code exact avez-vous essayé (ou le morceau pertinent, si c'est long)? Quels messages d'erreur avez-vous obtenus? 'Dir.foreach' fonctionne pour parcourir le contenu d'un répertoire, donc quelque chose d'autre se passe beaucoup. – Telemachus
Si vous ne voulez que des fichiers dans votre répertoire, n'oubliez pas de tester les fichiers lors de l'itération du contenu du répertoire: 'do_something_with (entrée) si File.file? (Entrée)' –
Utilisez ''img/*. {Jpg, png, gif, jpeg} ''pour récupérer plusieurs extensions. –