怎么在Ruby中确定文件类型?

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

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

如何可靠地确定文件的类型?文件扩展名分析不行。有没有一个与UNIX file(1)命令类似的rubyesque工具?

提问于
用户回答回答于

在Unix机器上,请尝试如下:

mimetype = `file -Ib #{path}`.gsub(/\n/,"")

我不知道有任何纯Ruby解决方案像‘file’一样可靠地工作。

用户回答回答于

有一个ruby绑定到libmagic是你所需要的。它是一个名为ruby-filemagic的gem:

gem install ruby-filemagic

要求libmagic-dev

例子:

$ irb 
irb(main):001:0> require 'filemagic' 
=> true
irb(main):002:0> fm = FileMagic.new
=> #<FileMagic:0x7fd4afb0>
irb(main):003:0> fm.file('foo.zip') 
=> "Zip archive data, at least v2.0 to extract"
irb(main):004:0> 

扫码关注云+社区