class String #ajout de la méthode à la classe String
def liste_rep(espacement = "")
#initialisation
i=0
fich_dir = [""]
all_dir = ""
liste_exclus = [".", ".."]
d = Dir.open(self)
#sort les fichiers sans . et .. qui nous interresse pas
liste_dir = d.sort - liste_exclus
liste_dir.each { |fichier| #pour chaque fichier touvé
case File.ftype(self+fichier)
when "directory" #si on trouve un dossier on l'ajoute et on cherche son contenu avec un apelle recursif
fich_dir[i] = "#{espacement} + #{fichier}/ \n"
espacement += " "
fich_dir[i+1] = (self + fichier + "/").liste_rep(espacement)
espacement = espacement[0, espacement.length-4]
i+=2
when "file" # si c'est un fichier on l'ajoute simplement
fich_dir[i] = "#{espacement} - #{fichier} \n"
i+=1
end
}
fich_dir.each { |n|
all_dir += n
return all_dir; #return l'arboressence des fichiers sous forme d'une chaine de caractere