Dans Ruby 1.8, comment supprimer un arbre de répertoires où certains sous-répertoires commencent par '.'? Par exemple, j'ai un répertoire de système de fichiers Linux intégré que je veux nettoyer. L'un de ses sous-répertoires est ./dev/.udev/files.Comment vider un répertoire avec .directories
Dir[ "{**/*,**/.**,**/.*}" ].sort.reverse.each do | p |
puts p
if ((p != '..') and (p != '.')) then
if File.directory? p then
Dir.rmdir p
else
File.delete p
end
end
end
Cela reconnaît ./dev/.udev/, mais il ne supprime pas les fichiers (ou les fichiers et répertoires) sous .udev.
Je me rends compte que je pourrais être brutal et exécuter
system("rm -Rf *")
à partir du répertoire de travail, mais j'aimerais mieux comprendre la méthodologie englobement.
Merci d'avance! : D
Le Dir []. Sort.reverse était destiné à lister les fichiers les plus profonds avant le répertoire dans lequel ils résident. Il fonctionne parfaitement sauf que les patterns glob ** et * n'acceptent pas les fichiers ou des répertoires qui commencent par. –
Nous vous remercions de votre suggestion sur FileUtils; c'est plus propre que le système(). :RÉ –