94 votes

One-liner pour les répertoires de liste récursivement dans Ruby ?

Quel est le moyen le plus rapide et plus optimisée, One-liner pour obtenir un tableau des répertoires (à l’exclusion de fichiers) en ruby ? Que diriez-vous, y compris les fichiers ?

173voto

sepp2k Points 157757
<pre><code></code><p><code></code><code></code><code></code>pouvez aussi prendre un bloc, auquel cas il engendrera chaque chemin d’accès au lieu de créer un tableau).</p></pre>

53voto

felipec Points 3278

Selon moi, aucune des solutions ici traitent des répertoires cachés (par ex. « .test ») :

29voto

MBO Points 12516

Pour la liste des répertoires try

Liste des fichiers est plus difficile, parce que sous Unix répertoire est également un fichier, il faut tester pour type ou supprimer des entrées de la liste retournée qui est parent d’autres entrées.

Et pour la liste de tous les fichiers et répertoires simplement

7voto

johannes Points 3878
<h1>Vite un liner<p>Uniquement les répertoires</p><pre><code></code></pre><p>Répertoires et fichiers normaux</p><pre><code></code></pre><h1>Rubis de belle pure</h1><pre><code></code></pre></h1>

7voto

troelskn Points 51966

Comme indiqué dans d'autres réponses ici, vous pouvez utiliser Dir.glob. Gardez à l'esprit que les dossiers peuvent avoir beaucoup de personnages étranges, et glob arguments sont des modèles, de sorte que certains caractères ont une signification particulière. En tant que tel, il est dangereux de faire quelque chose comme ce qui suit:

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

Au lieu de faire:

Dir.chdir(folder) { Dir.glob("**/*").map {|path| File.expand_path(path) } }

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