怎么在Ruby中查找文件名的扩展?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (41)

我正在研究Rails应用程序的文件上传部分。应用程序对不同类型的文件进行不同处理。

我想制作某些文件扩展名的白名单,以检查上传的文件,看看他们应该去哪里。所有的文件名都是字符串。

我需要一种方法来只检查文件名字符串的扩展部分。文件名全部采用“some_file_name.some_extension”格式。

提问于
用户回答回答于

非常基本的东西:

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
用户回答回答于

extname从File类使用method

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

你也可能需要basename method

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

扫码关注云+社区