119 votes

Trouver l'extension d'un nom de fichier en Ruby

Je travaille sur la partie de téléchargement de fichier d'une application rails. Différents types de fichiers sont gérés différemment par l'application. Je veux faire une liste blanche de certaines extensions de fichier pour vérifier les fichiers téléchargés pour voir où ils doivent aller. Tous les noms de fichiers sont des chaînes. J'ai donc besoin d'un moyen de vérifier uniquement la partie extension de la chaîne de nom de fichier. Les noms de fichiers sont tous au format "nom_du_fichier.some_extension"

186voto

Felix Points 33944

C'est des choses vraiment basiques:

 irb(main):002:0> accepted_formats = [".txt", ".pdf"]
=> [".txt", ".pdf"]
irb(main):003:0> File.extname("example.pdf") # get the extension
=> ".pdf"
irb(main):004:0> accepted_formats.include? File.extname("example.pdf")
=> true
irb(main):005:0> accepted_formats.include? File.extname("example.txt")
=> true
irb(main):006:0> accepted_formats.include? File.extname("example.png")
=> false
 

91voto

megas Points 10549

Utilisez la méthode extname de la classe File

 File.extname("test.rb")         #=> ".rb"
 

Vous pouvez aussi avoir besoin de la méthode basename

 File.basename("/home/gumby/work/ruby.rb", ".rb")   #=> "ruby"
 

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