前言
通常来说我们判断一个文件的类型是根据后缀名称来的,例如:.txt是文本文件 .exe是二进制文件可执行程序。在程序中需要预设后缀名称,有些时候不太容易把属于某类文件的后缀名写全。比如说图片类型的文件,后缀名可以是.jpg .bmp .png等,甚至有些可能我们没接触过,但也属于图片文件,这个时候 QMimeType就派上用场了,它可以识别文件或者给定数据的类型。
使用方法
QMimeType要配合QMimeDatabase来使用,下面的代码实现了判断文本类型文件,使用了inherits来判断是因为,MIME类型可以相互继承:例如,一个C源文件是一个特定类型的纯文本文件,因此text/x-csrc会继承text/plain。
QMimeDatabase db;
QMimeType mime = db.mimeTypeForFile(fileName);
if (mime.inherits("text/plain")) {
// 此文件是文本文件
}
判断文件是否是图片文件,这里使用了name获得类型名称,是因为图片文件都是以image开头。
QMimeDatabase db;
QMimeType mime = db.mimeTypeForFile(fileName);
if (mime.name().startsWith("image/")) {
// 此文件是图片文件
}
结束