2010-10-02 251 views

回答

4

为了达到这个目的,你需要使用第三方库,Qt本身没有mime类型的猜测支持。在Linux/Unix上,你可以使用libmagic。

+0

好。我会研究一下。 – 2010-10-02 18:41:00

+0

完美 - 这正是我所希望的。 – 2010-10-02 19:51:50

+0

这不再是事实。 Qt现在提供了mime类型的查找。 – BuvinJ 2015-12-05 16:19:57

25

的Qt 5增加了支持的MIME类型:

http://doc.qt.io/qt-5/qmimedatabase.html

QString path("/home/my_user/my_file"); 
#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0) 
    QMimeDatabase db; 
    QMimeType type = db.mimeTypeForFile(path); 
    qDebug() << "Mime type:" << type.name(); 
#endif 

参见:http://doc.qt.io/qt-5/qmimetype.html

+0

Qt5包可以很容易地支持Qt4。只需将来自Qt5源的mimetypes和标准路径下的所有文件编译到库中或与您的应用程序一起编译即可。我相信如果源自Qt 5.5+,需要做一些修改。 – Marcus 2016-06-28 04:26:46

5
#include <QMimeDatabase> 

QString mimeType(const QString &filePath){ return QMimeDatabase().mimeTypeForFile(filePath).name(); } 
+0

QString mime = QMimeDatabase()。mimeTypeForFile(path).name(); – sonichy 2017-03-28 16:06:50

+0

或者,像我在这个函数中一样封装实现细节。 – BuvinJ 2017-03-28 16:23:22