首页 > 解决方案 > 获取文件的未知扩展名

问题描述

我有一个包含文件本身名称的文件的目录路径,但文件的扩展名已被删除。我有:

Path = "repository/something/306/072/437/985/825" 

where825是不带扩展名的文件名。该文件可以是.jpg.txt扩展名。

如果我没有获得扩展名,我在 ruby​​ 中找不到任何用于检测文件扩展名的函数。无论如何要这样做?

标签: rubyfile-io

解决方案


您可能需要检测文件的MIME 类型

在 Linux 中,您可以通过 file --mime-type. 因此,一种方法是调用 shell 命令:

mime = %x[file --mime-type #{path} | cut -d' ' -f2]

或者你可以使用mimemagic gem 来做到这一点:

require 'mimemagic'

MimeMagic.by_magic(File.open('image.jpg')).type # => "image/jpeg" 

推荐阅读