Rubyでファイルタイプを決定する
概要
ファイルの種類を確実に判断するにはどうすればよいでしょうか?ファイル拡張子の分析は受け入れられません。 UNIX の file(1) コマンドに似た Ruby ツールがあるはずです?
これは、ディレクトリ、ファイル、ソケットなどのファイル システムの分類ではなく、MIME またはコンテンツ タイプに関するものです。
解決策
必要なことを行う libmagic への Ruby バインディングがあります。これは、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>