一般我们识别文件类型都是从文件的后缀区分,这样做可以识别出文件格式。但在Qt里有更好的实现方法。
以识别图片类型为例
一般识别图片类型方法:
虽然这一方法可以实现识别图片类型,但是维护起来相对困难。如果真的要识别所有的文件是否是图片类型,还需要添加更多的判断方法。1
2
3
4
5
6QString file("sample.jpg");
if (file.contains(".jpg") ||
file.contains(".bmp") ||
file.contains(".png")) {
qDebug()<<"这是图片。";
}
使用Qt接口识别的方法(推荐) :
QMimeType类描述由MIME类型字符串表示的文件或数据类型。1
2
3
4
5QMimeDatabase db;
QMimeType mime = db.mimeTypeForFile("sample.bmp");
if (mime.name().startsWith("image/")) {
qDebug()<<"这是图片。";
}
一些MIME类型常用对照表
类型 | 描述 | 示例 |
---|---|---|
text | 普通文本 | text/plain, text/html, text/css, text/javascript |
image | 图像文件(包含动态gif) | image/gif, image/png, image/jpeg, image/bmp, image/webp |
audio | 音频文件 | audio/wav, audio/mpeg, audio/midi, audio/webm, audio/ogg |
video | 视频文件 | video/mp4, video/x-flv, video/webm, video/ogg |
application | 二进制数据 | application/xml, application/pdf |