QMimeDatabase Class

QMimeDatabase 클래스는 MIME 타입의 데이터베이스를 유지 관리합니다. 더 보기...

Header: #include <QMimeDatabase>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core

참고: 이 클래스의 모든 함수는 스레드 안전합니다.

공용 형

enum MatchMode { MatchDefault, MatchExtension, MatchContent }

공용 함수

QMimeDatabase()
~QMimeDatabase()
QList<QMimeType> allMimeTypes() const
QMimeType mimeTypeForData(QIODevice *device) const
QMimeType mimeTypeForData(const QByteArray &data) const
QMimeType mimeTypeForFile(const QFileInfo &fileInfo, QMimeDatabase::MatchMode mode = MatchDefault) const
QMimeType mimeTypeForFile(const QString &fileName, QMimeDatabase::MatchMode mode = MatchDefault) const
QMimeType mimeTypeForFileNameAndData(const QString &fileName, QIODevice *device) const
QMimeType mimeTypeForFileNameAndData(const QString &fileName, const QByteArray &data) const
QMimeType mimeTypeForName(const QString &nameOrAlias) const
QMimeType mimeTypeForUrl(const QUrl &url) const
QList<QMimeType> mimeTypesForFileName(const QString &fileName) const
QString suffixForFileName(const QString &fileName) const

자세한 설명

MIME 타입 데이터베이스는 freedesktop.org shared-mime-info 프로젝트에서 제공합니다. 대부분의 Windows, macOS, iOS 시스템에서와 같이 시스템에서 MIME 형 데이터베이스를 찾을 수 없는 경우, Qt는 자체 복사본을 사용합니다.

사용자 정의 MIME 유형을 정의하려는 응용 프로그램은 MIME 정의를 검색한 위치에 XML 파일을 설치해야 합니다. 이러한 위치는 다음을 사용하여 쿼리할 수 있습니다.

QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, "mime/packages"_L1,
                          QStandardPaths::LocateDirectory);

일반적인 Unix 시스템에서는 /usr/share/mime/packages/이지만 환경 변수 XDG_DATA_DIRS 를 설정하여 디렉터리 목록을 확장할 수도 있습니다. 예를 들어 XDG_DATA_DIRS 에 /opt/myapp/share를 추가하면 /opt/myapp/share/mime/packages/에서 MIME 정의가 검색됩니다.

다음은 MIME XML의 예시입니다:

<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns="http://www.freedesktop.org/standards/shared-mime-info">
  <mime-type type="application/vnd.qt.qmakeprofile">
    <comment xml:lang="en">Qt qmake Profile</comment>
    <glob pattern="*.pro" weight="50"/>
  </mime-type>
</mime-info>

데이터를 기반으로 MIME 유형을 감지하기 위한 "magic" 정의를 포함하여 XML MIME 정의의 구문에 대한 자세한 내용은 공유 Mime 정보 사양(http://standards.freedesktop.org/shared-mime-info-spec/shared-mime-info-spec-latest.html)을 참조하세요.

유닉스 시스템에서는 성능 향상을 위해 바이너리 캐시가 사용됩니다. 이 캐시는 "update-mime-database path" 명령으로 생성되며, 위 예제에서 경로는 /opt/myapp/share/mime입니다. MIME 타입 정의 파일을 설치할 때 이 명령을 실행해야 합니다.

QMimeDatabase db;
QMimeType mime = db.mimeTypeForFile(fileName);
if (mime.inherits("text/plain")) {
    // The file is plain text, we can display it in a QTextEdit
}

QMimeTypeMIME 타입 브라우저를참조하세요 .

멤버 타입 문서

enum QMimeDatabase::MatchMode

이 열거형은 파일을 MIME 유형에 일치시키는 방법을 지정합니다.

Constant설명
QMimeDatabase::MatchDefault0x0파일 이름과 콘텐츠 모두 일치하는 항목을 찾는 데 사용됩니다.
QMimeDatabase::MatchExtension0x1파일 이름만 일치 항목을 찾는 데 사용됩니다.
QMimeDatabase::MatchContent0x2파일 내용만 일치하는 항목을 찾는 데 사용됩니다.

멤버 함수 문서

QMimeDatabase::QMimeDatabase()

QMimeDatabase 객체를 구축합니다.

조회를 수행해야 할 때마다 QMimeDatabase의 인스턴스를 생성해도 괜찮습니다. 밈 유형 구문 분석은 요청 시(shared-mime-info가 설치된 경우) 또는 첫 번째 인스턴스가 구성될 때(XML 파일을 직접 구문 분석할 때) 수행됩니다.

[noexcept] QMimeDatabase::~QMimeDatabase()

QMimeDatabase 객체를 삭제합니다.

QList<QMimeType> QMimeDatabase::allMimeTypes() const

사용 가능한 모든 MIME 타입의 목록을 반환합니다.

이 함수는 MIME 유형 편집기 등에서 사용자에게 모든 MIME 유형을 표시하는 데 유용할 수 있습니다. 하지만 꼭 필요한 경우가 아니라면 사용하지 마시고, 성능상의 이유로 mimeTypeForXxx() 메서드를 사용하는 것을 권장합니다.

QMimeType QMimeDatabase::mimeTypeForData(QIODevice *device) const

device 에 있는 데이터의 MIME 타입을 반환합니다.

항상 유효한 MIME 타입이 반환됩니다. device 의 데이터가 알려진 MIME 타입 데이터와 일치하지 않으면 기본 MIME 타입(application/octet-stream)이 반환됩니다.

QMimeType QMimeDatabase::mimeTypeForData(const QByteArray &data) const

data 에 대한 MIME 타입을 반환합니다.

항상 유효한 MIME 타입이 반환됩니다. data 이 알려진 MIME 타입 데이터와 일치하지 않으면 기본 MIME 타입(application/octet-stream)이 반환됩니다.

QMimeType QMimeDatabase::mimeTypeForFile(const QFileInfo &fileInfo, QMimeDatabase::MatchMode mode = MatchDefault) const

fileInfo 에 대한 MIME 타입을 반환합니다.

항상 유효한 MIME 타입이 반환됩니다.

기본 매칭 알고리즘은 필요한 경우 파일 이름과 파일 내용을 모두 살펴봅니다. 파일 확장자가 내용보다 우선하지만, 파일 확장자를 알 수 없거나 여러 MIME 유형과 일치하는 경우 내용이 사용됩니다. fileInfo 이 유닉스 심볼릭 링크인 경우 해당 링크가 참조하는 파일이 대신 사용됩니다. 파일이 알려진 패턴이나 데이터와 일치하지 않으면 기본 MIME 유형(애플리케이션/옥텟 스트림)이 반환됩니다.

modeMatchExtension 으로 설정된 경우 파일 내용 대신 파일 이름만 사용됩니다. 파일이 존재하지 않아도 됩니다. 파일 이름이 알려진 패턴과 일치하지 않으면 기본 MIME 유형(application/octet-stream)이 반환됩니다. 이 파일과 일치하는 MIME 유형이 여러 개 있으면 첫 번째 유형(알파벳순)이 반환됩니다.

modeMatchContent 으로 설정되어 있고 파일을 읽을 수 있는 경우, 파일 내용만 MIME 유형을 결정하는 데 사용됩니다. 이는 QFile 을 입력 장치로 사용하여 mimeTypeForData 을 호출하는 것과 같습니다.

fileInfo 는 절대 경로 또는 상대 경로를 참조할 수 있습니다.

QMimeType::isDefault() 및 mimeTypeForData()도 참조하세요 .

QMimeType QMimeDatabase::mimeTypeForFile(const QString &fileName, QMimeDatabase::MatchMode mode = MatchDefault) const

mode 을 사용하여 fileName 이라는 파일에 대한 MIME 유형을 반환합니다.

이 함수는 오버로드된 함수입니다.

QMimeType QMimeDatabase::mimeTypeForFileNameAndData(const QString &fileName, QIODevice *device) const

주어진 fileNamedevice 데이터에 대한 MIME 타입을 반환합니다.

이 오버로드는 파일이 원격에 있고 장치에서 일부 데이터를 다운로드하기 시작한 경우에 유용할 수 있습니다. 이를 통해 원격 파일에 대해서도 전체 MIME 타입 매칭을 수행할 수 있습니다.

장치가 열려 있지 않으면 이 함수에 의해 열리고, MIME 유형 감지가 완료된 후 닫힙니다.

항상 유효한 MIME 유형이 반환됩니다. device 데이터가 알려진 MIME 유형 데이터와 일치하지 않으면 기본 MIME 유형(application/octet-stream)이 반환됩니다.

이 메서드는 필요한 경우 파일 이름과 파일 내용을 모두 확인합니다. 파일 확장자가 내용보다 우선하지만, 파일 확장자를 알 수 없거나 여러 MIME 유형과 일치하는 경우 내용이 사용됩니다.

QMimeType QMimeDatabase::mimeTypeForFileNameAndData(const QString &fileName, const QByteArray &data) const

주어진 fileName 및 디바이스 data 에 대한 MIME 타입을 반환합니다.

이 오버로드는 파일이 원격에 있고 일부 데이터를 다운로드하기 시작했을 때 유용할 수 있습니다. 이를 통해 원격 파일에 대해서도 전체 MIME 타입 매칭을 수행할 수 있습니다.

항상 유효한 MIME 유형이 반환됩니다. data 이 알려진 MIME 유형 데이터와 일치하지 않으면 기본 MIME 유형(application/octet-stream)이 반환됩니다.

이 메서드는 필요한 경우 파일 이름과 파일 내용을 모두 확인합니다. 파일 확장자가 내용보다 우선하지만, 파일 확장자를 알 수 없거나 여러 MIME 유형과 일치하는 경우 내용이 사용됩니다.

QMimeType QMimeDatabase::mimeTypeForName(const QString &nameOrAlias) const

nameOrAlias 에 대한 MIME 유형을 반환하거나, 없는 경우 유효하지 않은 유형을 반환합니다.

QMimeType QMimeDatabase::mimeTypeForUrl(const QUrl &url) const

url 에 대한 MIME 유형을 반환합니다.

URL이 로컬 파일인 경우 mimeTypeForFile 을 호출합니다.

그렇지 않으면 HTTP처럼 파일 이름이 큰 의미가 없는 스키마를 제외하고 파일 이름만 기준으로 일치시킵니다. 이 메서드는 항상 HTTP URL의 기본 미메타입을 반환하므로 QNetworkAccessManager 을 사용하여 HTTP URL을 올바르게 처리하세요.

항상 유효한 MIME 타입이 반환됩니다. url 이 알려진 MIME 타입 데이터와 일치하지 않는 경우 기본 MIME 타입(application/octet-stream)이 반환됩니다.

QList<QMimeType> QMimeDatabase::mimeTypesForFileName(const QString &fileName) const

파일 이름 fileName 에 대한 MIME 유형을 반환합니다.

파일 이름이 알려진 패턴과 일치하지 않으면 빈 목록이 반환됩니다. 이 파일과 일치하는 MIME 유형이 여러 개 있으면 모두 반환됩니다.

이 함수는 파일을 열려고 시도하지 않습니다. MIME 유형을 결정할 때 콘텐츠를 사용하려면 mimeTypeForFile() 또는 mimeTypeForFileNameAndData()를 대신 사용합니다.

mimeTypeForFile()도 참조하세요 .

QString QMimeDatabase::suffixForFileName(const QString &fileName) const

MIME 데이터베이스에서 알려진 fileName 파일의 접미사를 반환합니다.

이렇게 하면 foo.tar.bz2의 경우 "tar.bz2"를 미리 선택할 수 있지만, my.file.with.dots.txt의 경우 여전히 "txt"만 선택할 수 있습니다.

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.