2011-04-21 82 views
4

我怎样才能找出给定文件的MIME类型或内容类型? 我无法使用后缀,因为该文件可能会被重命名。找出MIME类型和相关应用程序使用Qt

可能增加将他们归类为JPG,GIF,PNG等是图像文件,并且可以通过编辑应用程序,已在操作系统中设置打开。

预先感谢您。

回答

1

什么平台?在* nix上,你应该参考程序file是如何实现的,它基于一些启发式方法,包括检查文件的前几个字节(许多文件格式以固定标题开头,包括许多图像格式)。

如果你在Windows中,* nix中file命令可能仍然是有益的,即使你不能直接重复使用它的代码。在Windows API中也可能有一些更好的解决方案(我不是Windows程序员)。

+0

另见的超级用户这样一个问题:http://superuser.com/questions/274734/is-there-a-tool-that-c​​an-determine-the-file-type-by-containing-data – 2011-04-24 17:55:49

1

你不能,而不是从Qt内部。但是,如果您只想显示具有正确应用程序的文件,则可以使用QDesktopServices::openUrl(),该文件包装为open(Windows/OSX)和xdg-open(Unix)。该URL也可能是本地文件(在这种情况下,使用QUrl::fromLocalFile()来构建URL)。

0

用于对图像文件进行分类。对于Qt而言,仅用于图像文件。

QByteArray imageFormat = QImageReader::imageFormat(fileName); //Where fileName - path to your file 

进一步映射到的imageformat MIME类型不complicable

0

它看起来并不像Qt的提供这种能力呢。但是,您可能需要查看libmagic库,它可以执行file和其他类似命令所做的操作。假设库被正确维护,它将随着时间的流逝而包含新的MIME类型。从我可以告诉它是文件工具套件的一部分。在Debian系统下执行如下操作:

sudo apt-get install libmagic-dev 

获取开发库并使用#include来使用它。

相关问题