Je suis en train de rechercher tous les fichiers d'un type donné (disons .pdf) dans un dossier donné, et de les copier dans un nouveau dossier. Ce dont j'ai besoin pour être en mesure de faire est de spécifier un dossier à la racine et de la recherche par le biais de ce dossier et tous ses sous-dossiers pour les fichiers qui correspondent à un type donné (.pdf). Quelqu'un peut-il me donner un coup de main sur la façon dont je devrais rechercher dans le dossier racine du sous-dossiers et leurs sous-dossiers et ainsi de suite. Il sonne comme une méthode récursive ferait l'affaire ici, mais je ne peut pas mettre en œuvre correctement? (Je suis la mise en œuvre de ce programme en ruby par la voie).
Réponses
Trop de publicités?
rogerdpack
Points
12806
Vous voulez le Trouver module. Find.find
prend une chaîne de caractères contenant un chemin, et va passer le chemin d'accès parent avec le chemin d'accès de chaque fichier et chaque sous-répertoire à l'accompagnement d'un bloc. Un exemple de code:
require 'find'
pdf_file_paths = []
Find.find('path/to/search') do |path|
pdf_file_paths << path if path =~ /.*\.pdf$/
end
Qui recherche de manière récursive un chemin, et de stocker tous les noms de fichiers se terminant par .pdf dans un tableau.