Je veux stocker un fichier en tant que /a/b/c/d.txt, mais je ne sais pas si l'un de ces répertoires existe et doit les créer récursivement si nécessaire. Comment peut-on faire cela en rubis?Comment créer des répertoires récursivement dans ruby?
Répondre
Utilisation mkdir_p
:
FileUtils.mkdir_p '/a/b/c'
Le _p
est une durée d'efficacité unix pour chemin/parent, vous pouvez également utiliser l'alias mkpath
si cela fait plus de sens pour vous.
FileUtils.mkpath '/a/b/c'
En Ruby 1.9 FileUtils a été retiré du noyau, de sorte que vous aurez à require 'fileutils'
.
require 'ftools'
Merci pour le pointeur! Les docs semblent préférer FileUtils.mkdir_p, donc j'ai pris ça ... – Jan
Si vous utilisez des machines Unixy, n'oubliez pas que vous pouvez toujours exécuter une commande shell sous ruby en la plaçant en arrière.
`mkdir -p /a/b/c`
Donner une ligne de commande pour une fonction que vous pouvez faire avec une fonction intégrée n'est pas bon –
Etre si positif est cependant. –
utilisateur mkdir_p pour créer le répertoire récursive
path = "/tmp/a/b/c"
FileUtils.mkdir_p(path) unless File.exists?(path)
Vous pouvez également utiliser votre propre logique
def self.create_dir_if_not_exists(path)
recursive = path.split('/')
directory = ''
recursive.each do |sub_directory|
directory += sub_directory + '/'
Dir.mkdir(directory) unless (File.directory? directory)
end
end
Donc, si le chemin est 'tmp/a/b/c' si ' tmp 'n'existe pas' tmp 'est créé, puis' tmp/a/'et ainsi de suite.
- 1. Comment créer des sous-répertoires inexistants récursivement en utilisant Bash?
- 2. Quel est le moyen le plus rapide d'ajouter récursivement des répertoires sur le $ LOAD_PATH dans ruby?
- 3. java: créer des répertoires
- 4. Java: comment obtenir récursivement tous les sous-répertoires?
- 5. Comment créer des répertoires virtuels en PHP?
- 6. Énumère récursivement les fichiers et les répertoires en C#
- 7. Existe-t-il une méthode dans Objective-C pour créer récursivement des répertoires à partir d'une chaîne?
- 8. Obtenir récursivement des fichiers dans un répertoire avec plusieurs sous-répertoires
- 9. IIS web deploy - créer des répertoires virtuels?
- 10. Comment lire de manière récursive des répertoires dans Perl?
- 11. Créer dynamiquement des tableaux dans Ruby
- 12. Comment copier une structure de répertoires dans ruby, à l'exclusion de certaines extensions de fichier
- 13. Comment créer des espaces entre quatre entiers dans Ruby?
- 14. Comment créer des valeurs par défaut dans un Ruby Form?
- 15. Comment créer des sockets réseau persistants sous Unix dans Ruby?
- 16. Puis-je créer récursivement un chemin dans Zookeeper?
- 17. Applications Web qui génèrent de jolies galeries photo/vidéo en recherchant récursivement des répertoires
- 18. Comment parcourir XPath récursivement?
- 19. Créer un répertoire + sous-répertoires
- 20. Comment parcourir des répertoires dans Ant
- 21. comment créer un fichier plat dans ruby
- 22. Comment soustraire récursivement d'un tableau?
- 23. Comment appelez-vous récursivement des tâches dans MSBuild?
- 24. Comment créer un hachage SHA1 dans ruby?
- 25. Comment créer un hachage persistant dans Ruby?
- 26. Comment créer cet objet JSON dans ruby?
- 27. Comment créer une enveloppe SOAP dans Ruby?
- 28. Linq-to-Sql: obtenir récursivement des enfants
- 29. Script shell pour parcourir les fichiers récursivement
- 30. Comment utiliser "svn add" récursivement dans la console Windows?
+1. 'FileUtils' et' Pathname' sont probablement les outils les plus importants pour les scripts shell Ruby. –