如何查找给定文件的mime类型或内容类型? 我不能使用后缀,因为文件可以重命名。
可能的添加内容将jpg,gif,png等分类为图像文件,可以通过编辑应用程序打开,这些应用程序已在操作系统中设置。
提前谢谢。
答案 0 :(得分:1)
什么平台?在* nix上,你应该参考程序file
如何做到这一点,它基于一些启发式方法,包括检查文件的前几个字节(许多文件格式以固定标题开头,包括许多图像格式)。
如果你在Windows上,* nix file
命令可能仍然具有指导性,即使你不能直接重用它的代码。 Windows API中可能还有一些更好的解决方案(我不是Windows程序员)。
答案 1 :(得分:1)
这可能有所帮助,它与C#有关,但我认为你可以得到这个想法。
http://kseesharp.blogspot.com/2008/04/c-get-mimetype-from-file-name.html
您可以使用某种类来从qt获取Windows注册表或直接从qt使用Windows API。
我不是一名qt程序员。
答案 2 :(得分:1)
你不能,不能来自Qt。
但是,如果您只想显示具有正确应用程序的文件,则可以使用QDesktopServices::openUrl(),其中包含open
(Windows / OSX)和xdg-open
(Unix)。 URL也可以是本地文件(在这种情况下,使用QUrl::fromLocalFile()构建URL)。
答案 3 :(得分:0)
用于分类图像文件。对于Qt,仅适用于图像文件。
QByteArray imageFormat = QImageReader::imageFormat(fileName); //Where fileName - path to your file
进一步将imageFormat映射到mime-type并不复杂
答案 4 :(得分:0)
看起来Qt还没有提供这种功能。但是,您可能需要查看执行file
和其他类似命令的libmagic库。假设库已正确维护,它将随着时间的推移包含新的MIME类型。据我所知,它是文件工具套件的一部分。在Debian系统下做类似的事情:
sudo apt-get install libmagic-dev
获取开发库并使用#include来使用它。