Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Qt中获取文件的MIME类型?_Qt_Mime - Fatal编程技术网

如何在Qt中获取文件的MIME类型?

如何在Qt中获取文件的MIME类型?,qt,mime,Qt,Mime,有没有办法在Qt中获取文件的MIME类型 我正在编写一个需要查找给定文件的MIME类型的应用程序。为此,您需要使用第三方库,Qt本身不支持MIME类型猜测。在Linux/Unix上,您可以使用libmagic。Qt 5增加了对MIME类型的支持: QString路径(“/home/my_user/my_file”); #如果QT\u版本>=QT\u版本检查(5,0,0) QMIMEDB数据库; QMimeType type=db.mimeTypeForFile(路径); qDebug()#包括

有没有办法在Qt中获取文件的MIME类型


我正在编写一个需要查找给定文件的MIME类型的应用程序。

为此,您需要使用第三方库,Qt本身不支持MIME类型猜测。在Linux/Unix上,您可以使用libmagic。

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

QString路径(“/home/my_user/my_file”);
#如果QT\u版本>=QT\u版本检查(5,0,0)
QMIMEDB数据库;
QMimeType type=db.mimeTypeForFile(路径);
qDebug()
#包括
QString mimeType(const QString&filePath){return QMimeDatabase().mimeTypeForFile(filePath).name();}

Perfect-这正是我所希望的。这不再是事实。Qt现在提供mime类型查找。Qt5包可以很容易地后端口到Qt4。只需将来自Qt5源代码的mimetypes和standardpath下的所有文件编译到库中或与应用程序一起编译即可。如果源代码取自Qt5.5+I-belize.QString mime=QMimeDatabase().mimeTypeForFile(path).name();或者,像在这个函数中一样封装实现细节。
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
#include <QMimeDatabase>  

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