2010-10-02 4 views

ответ

4

Для этой цели вам необходимо использовать сторонние библиотеки, в Qt не поддерживается поддержка угадывания типа mime. В Linux/Unix вы можете использовать libmagic.

+0

Хорошо. Я займусь этим. –

+0

Отлично - это точно то, на что я надеялся. –

+0

Это уже не так. Qt теперь предлагает поиск типа mime. – BuvinJ

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. Просто скомпилируйте все файлы в файлах mimetypes и standardpath из источника Qt5 в библиотеку или вместе с вашим приложением. Некоторые модификации должны быть сделаны, если источники взяты из Qt 5.5+, я полагаю. – Marcus

5
#include <QMimeDatabase> 

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

QString mime = QMimeDatabase(). MimeTypeForFile (путь) .name(); – sonichy

+0

Или инкапсулируйте детали реализации, как у меня в этой функции. – BuvinJ

Смежные вопросы