2010-04-10 6 views
0

Je suis bloqué en essayant d'obtenir une regex pour correspondre à un type de fichier dans un script de tri.Comment faire correspondre le type de fichier avec l'expression régulière?

Dir.foreach(savedirs[0]) do |x| 
    puts "Matching " + x + " against filetypes." 
    case x 
    when x.match(/^.*\.exe$/i) then puts x 
    when x.match(/\.jpe?g$/) then FileUtils.move(x, sortpath[".exe"], :verbose => true) 
    when x =~ /\.jpg$/ then FileUtils.move(x, sortpath[".jpg"]) 
    end 
end 

Je n'arrive pas à faire correspondre ces éléments dans Windows. Tout ce dont j'ai besoin est de confirmer qu'un nom de fichier donné correspond à des types de fichiers compatibles.

+0

Vous êtes plutôt à la recherche du nom de fichier que l'extension du type de fichier. – Gumbo

Répondre

5

Vous pouvez obtenir l'extension comme ceci:

ext = File.extname(filename) 

case ext 
when ".exe" then ... 
when ".jpg", ".jpeg" then ... 
... 
end 

Je tiens à garder regex sortir ...

Questions connexes