77 votes

Recherche d'un dossier et tous ses sous-dossiers pour les fichiers d'un certain type

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).

124voto

rogerdpack Points 12806

Essayez ceci:

Dir.glob("#{folder}/**/*.pdf")

Lorsque le dossier de la variable est le chemin d'accès à la racine du dossier que vous souhaitez effectuer la recherche.

65voto

Jergason Points 7748

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.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X