QFileSystemModel Class

QFileSystemModel 클래스는 로컬 파일 시스템에 대한 데이터 모델을 제공합니다. 더 보기...

헤더: #include <QFileSystemModel>
CMake: find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake: QT += gui
상속합니다: QAbstractItemModel

공용 유형

enum Option { DontWatchForChanges, DontResolveSymlinks, DontUseCustomDirectoryIcons }
flags Options
enum Roles { FileIconRole, FilePathRole, FileNameRole, FilePermissions, FileInfoRole }

속성

공용 함수

QFileSystemModel(QObject *parent = nullptr)
virtual ~QFileSystemModel()
QIcon fileIcon(const QModelIndex &index) const
QFileInfo fileInfo(const QModelIndex &index) const
QString fileName(const QModelIndex &index) const
QString filePath(const QModelIndex &index) const
QDir::Filters filter() const
QAbstractFileIconProvider *iconProvider() const
QModelIndex index(const QString &path, int column = 0) const
bool isDir(const QModelIndex &index) const
bool isReadOnly() const
QDateTime lastModified(const QModelIndex &index) const
(since 6.6) QDateTime lastModified(const QModelIndex &index, const QTimeZone &tz) const
QModelIndex mkdir(const QModelIndex &parent, const QString &name)
QVariant myComputer(int role = Qt::DisplayRole) const
bool nameFilterDisables() const
QStringList nameFilters() const
QFileSystemModel::Options options() const
QFileDevice::Permissions permissions(const QModelIndex &index) const
bool remove(const QModelIndex &index)
bool resolveSymlinks() const
bool rmdir(const QModelIndex &index)
QDir rootDirectory() const
QString rootPath() const
void setFilter(QDir::Filters filters)
void setIconProvider(QAbstractFileIconProvider *provider)
void setNameFilterDisables(bool enable)
void setNameFilters(const QStringList &filters)
void setOption(QFileSystemModel::Option option, bool on = true)
void setOptions(QFileSystemModel::Options options)
void setReadOnly(bool enable)
void setResolveSymlinks(bool enable)
QModelIndex setRootPath(const QString &newPath)
qint64 size(const QModelIndex &index) const
bool testOption(QFileSystemModel::Option option) const
QString type(const QModelIndex &index) const

재구현된 공용 함수

virtual bool canFetchMore(const QModelIndex &parent) const override
virtual int columnCount(const QModelIndex &parent = QModelIndex()) const override
virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override
virtual bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) override
virtual void fetchMore(const QModelIndex &parent) override
virtual Qt::ItemFlags flags(const QModelIndex &index) const override
virtual bool hasChildren(const QModelIndex &parent = QModelIndex()) const override
virtual QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override
virtual QModelIndex index(int row, int column, const QModelIndex &parent = QModelIndex()) const override
virtual QMimeData *mimeData(const QModelIndexList &indexes) const override
virtual QStringList mimeTypes() const override
virtual QModelIndex parent(const QModelIndex &index) const override
virtual QHash<int, QByteArray> roleNames() const override
virtual int rowCount(const QModelIndex &parent = QModelIndex()) const override
virtual bool setData(const QModelIndex &idx, const QVariant &value, int role = Qt::EditRole) override
virtual QModelIndex sibling(int row, int column, const QModelIndex &idx) const override
virtual void sort(int column, Qt::SortOrder order = Qt::AscendingOrder) override
virtual Qt::DropActions supportedDropActions() const override

신호

void directoryLoaded(const QString &path)
void fileRenamed(const QString &path, const QString &oldName, const QString &newName)
void rootPathChanged(const QString &newPath)

재구현된 보호 함수

virtual bool event(QEvent *event) override
virtual void timerEvent(QTimerEvent *event) override

상세 설명

이 클래스는 로컬 파일 시스템에 대한 액세스를 제공하여 파일 및 디렉터리 이름 변경 및 제거, 새 디렉터리 생성을 위한 함수를 제공합니다. 가장 간단한 경우에는 브라우저나 필터의 일부로 적절한 디스플레이 위젯과 함께 사용할 수 있습니다.

QFileSystemModel은 QAbstractItemModel 에서 제공하는 표준 인터페이스를 사용하여 액세스할 수 있지만, 디렉토리 모델에 특화된 몇 가지 편의 기능도 제공합니다. fileInfo (), isDir(), fileName() 및 filePath() 함수는 모델 내 항목과 관련된 기본 파일 및 디렉터리에 대한 정보를 제공합니다. 디렉토리는 mkdir(), rmdir()를 사용하여 만들고 제거할 수 있습니다.

사용 예

기본 디렉토리의 콘텐츠를 표시하는 디렉토리 모델은 일반적으로 상위 개체를 사용하여 구성됩니다:

    QFileSystemModel *model = new QFileSystemModel;
    model->setRootPath(QDir::currentPath());

트리 보기를 사용하여 모델의 콘텐츠를 표시할 수 있습니다.

    QTreeView *tree = new QTreeView(splitter);
    tree->setModel(model);

트리 보기의 루트 인덱스를 설정하여 특정 디렉터리의 콘텐츠를 표시할 수 있습니다:

    tree->setRootIndex(model->index(QDir::currentPath()));

뷰의 루트 인덱스를 사용하여 계층적 모델이 표시되는 정도를 제어할 수 있습니다. QFileSystemModel은 모델 내 디렉터리 경로에 적합한 모델 인덱스를 반환하는 편리한 함수를 제공합니다.

캐싱 및 성능

QFileSystemModel은 별도의 스레드를 사용하여 스스로를 채우므로 파일 시스템을 쿼리하는 동안 메인 스레드가 중단되지 않습니다. rowCount () 호출은 모델이 디렉터리를 채울 때까지 0 을 반환합니다. QFileSystemModel이 있는 스레드는 들어오는 데이터를 처리하기 위해 이벤트 루프를 실행해야 합니다.

setRootPath()가 호출될 때까지 QFileSystemModel은 자체 채우기를 시작하지 않습니다. 이렇게 하면 그 시점까지 Windows에서 드라이브를 열거하는 등 시스템의 루트 파일 시스템에 대한 불필요한 쿼리를 방지할 수 있습니다.

QFileSystemModel은 파일 정보가 포함된 캐시를 유지합니다. 캐시는 QFileSystemWatcher 을 사용하여 자동으로 최신 상태로 유지됩니다.

모델 클래스도참조하십시오 .

멤버 유형 문서

열거형 QFileSystemModel::Option
플래그 QFileSystemModel::옵션

Constant설명
QFileSystemModel::DontWatchForChanges0x00000001경로에 파일 감시자를 추가하지 않습니다. 이렇게 하면 줄 편집 완료와 같은 간단한 작업에 모델을 사용할 때 오버헤드가 줄어듭니다.
QFileSystemModel::DontResolveSymlinks0x00000002파일 시스템 모델에서 심볼릭 링크를 확인하지 않습니다. 기본적으로 심볼릭 링크는 확인됩니다.
QFileSystemModel::DontUseCustomDirectoryIcons0x00000004항상 기본 디렉토리 아이콘을 사용하세요. 일부 플랫폼에서는 사용자가 다른 아이콘을 설정할 수 있습니다. 사용자 지정 아이콘 조회는 네트워크 또는 이동식 드라이브에서 성능에 큰 영향을 미칩니다. 이에 따라 아이콘 공급자의 QFileIconProvider::DontUseCustomDirectoryIcons 옵션이 설정됩니다.

옵션 유형은 QFlags<Option>에 대한 typedef입니다. 옵션 값의 OR 조합을 저장합니다.

resolveSymlinks참조하세요 .

enum QFileSystemModel::Roles

상수설명
QFileSystemModel::FileIconRoleQt::DecorationRole
QFileSystemModel::FilePathRoleQt::UserRole + 1
QFileSystemModel::FileNameRoleQt::UserRole + 2
QFileSystemModel::FilePermissionsQt::UserRole + 3
QFileSystemModel::FileInfoRoleQt::UserRole - 4인덱스에 대한 QFileInfo 객체입니다.

속성 문서

nameFilterDisables : bool

이 속성은 이름 필터를 통과하지 못한 파일이 숨겨지거나 비활성화되는지 여부를 저장합니다.

이 속성은 기본적으로 true 입니다.

액세스 함수입니다:

bool nameFilterDisables() const
void setNameFilterDisables(bool enable)

options : Options

이 속성에는 모델에 영향을 주는 다양한 옵션이 있습니다.

기본적으로 모든 옵션은 비활성화되어 있습니다.

속성을 변경하기 전에 옵션을 설정해야 합니다.

함수에 액세스합니다:

QFileSystemModel::Options options() const
void setOptions(QFileSystemModel::Options options)

setOption() 및 testOption()도 참조하세요 .

readOnly : bool

이 속성은 디렉터리 모델에서 파일 시스템에 쓰기를 허용할지 여부를 나타냅니다.

이 속성을 false로 설정하면 디렉토리 모델에서 파일 및 디렉터리의 이름 변경, 복사 및 삭제를 허용합니다.

이 속성은 기본적으로 true 입니다.

액세스 기능:

bool isReadOnly() const
void setReadOnly(bool enable)

이 속성은 디렉터리 모델이 심볼릭 링크를 확인할지 여부를 보유합니다.

이 속성은 Windows에서만 관련이 있습니다.

기본적으로 이 속성은 true 입니다.

액세스 함수입니다:

bool resolveSymlinks() const
void setResolveSymlinks(bool enable)

QFileSystemModel::Options참조하십시오 .

멤버 함수 문서

[explicit] QFileSystemModel::QFileSystemModel(QObject *parent = nullptr)

주어진 parent 으로 파일 시스템 모델을 구축합니다.

[virtual noexcept] QFileSystemModel::~QFileSystemModel()

이 파일 시스템 모델을 삭제합니다.

[override virtual] bool QFileSystemModel::canFetchMore(const QModelIndex &parent) const

재구현합니다: QAbstractItemModel::canFetchMore(const QModelIndex &parent) const.

[override virtual] int QFileSystemModel::columnCount(const QModelIndex &parent = QModelIndex()) const

재구현합니다: QAbstractItemModel::columnCount(const QModelIndex &parent) const.

[override virtual] QVariant QFileSystemModel::data(const QModelIndex &index, int role = Qt::DisplayRole) const

재구현합니다: QAbstractItemModel::data(const QModelIndex &index, int role) const.

setData()도 참조하십시오 .

[signal] void QFileSystemModel::directoryLoaded(const QString &path)

이 신호는 수집기 스레드가 path 로드를 완료했을 때 발생합니다.

[override virtual] bool QFileSystemModel::dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent)

재구현합니다: QAbstractItemModel::dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent).

rowcolumnparent 인덱스에 의해 지정된 모델의 행 위에 지정된 action 로 끝나는 드래그 앤 드롭 작업으로 제공된 data 을 처리합니다. 작업이 성공하면 true를 반환합니다.

supportedDropActions()도 참조하세요 .

[override virtual protected] bool QFileSystemModel::event(QEvent *event)

다시 구현합니다: QObject::event(QEvent *e).

[override virtual] void QFileSystemModel::fetchMore(const QModelIndex &parent)

재구현합니다: QAbstractItemModel::fetchMore(const QModelIndex &parent).

QIcon QFileSystemModel::fileIcon(const QModelIndex &index) const

주어진 index 아래에 모델에 저장된 항목의 아이콘을 반환합니다.

QFileInfo QFileSystemModel::fileInfo(const QModelIndex &index) const

주어진 index 아래에 모델에 저장된 항목에 대한 QFileInfo 을 반환합니다.

QString QFileSystemModel::fileName(const QModelIndex &index) const

주어진 index 아래에 모델에 저장된 항목의 파일 이름을 반환합니다.

QString QFileSystemModel::filePath(const QModelIndex &index) const

주어진 index 아래에 모델에 저장된 항목의 경로를 반환합니다.

[signal] void QFileSystemModel::fileRenamed(const QString &path, const QString &oldName, const QString &newName)

이 신호는 oldName 의 파일 이름이 newName 으로 성공적으로 변경될 때마다 발생하며, 해당 파일은 path 디렉토리에 있습니다.

QDir::Filters QFileSystemModel::filter() const

디렉토리 모델에 지정된 필터를 반환합니다.

필터가 설정되지 않은 경우 기본 필터는 QDir::AllEntries | QDir::NoDotAndDotDot | QDir::AllDirs 입니다.

setFilter() 및 QDir::Filters도 참조하세요 .

[override virtual] Qt::ItemFlags QFileSystemModel::flags(const QModelIndex &index) const

재구현합니다: QAbstractItemModel::flags(const QModelIndex &index) const.

[override virtual] bool QFileSystemModel::hasChildren(const QModelIndex &parent = QModelIndex()) const

재구현합니다: QAbstractItemModel::hasChildren(const QModelIndex &parent) const.

[override virtual] QVariant QFileSystemModel::headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const

재구현합니다: QAbstractItemModel::headerData(int section, Qt::오리엔테이션 방향, int 역할) const.

QAbstractFileIconProvider *QFileSystemModel::iconProvider() const

이 디렉토리 모델의 파일 아이콘 공급자를 반환합니다.

setIconProvider()도 참조하세요 .

[override virtual] QModelIndex QFileSystemModel::index(int row, int column, const QModelIndex &parent = QModelIndex()) const

재구현합니다: QAbstractItemModel::index(int row, int column, const QModelIndex &parent) const.

QModelIndex QFileSystemModel::index(const QString &path, int column = 0) const

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

주어진 pathcolumn 에 대한 모델 항목 인덱스를 반환합니다.

bool QFileSystemModel::isDir(const QModelIndex &index) const

모델 항목 index 이 디렉터리를 나타내는 경우 true 을 반환하고, 그렇지 않으면 false 을 반환합니다.

QDateTime QFileSystemModel::lastModified(const QModelIndex &index) const

index 이 마지막으로 수정된 날짜와 시간(현지 시간)을 반환합니다.

이 함수는 호출과 동일한 오버로드된 함수입니다:

lastModified(index, QTimeZone::LocalTime);

index 가 유효하지 않으면 기본값으로 구성된 QDateTime 이 반환됩니다.

[since 6.6] QDateTime QFileSystemModel::lastModified(const QModelIndex &index, const QTimeZone &tz) const

index 이 마지막으로 수정된 날짜와 시간( tz, 표준 시간대)을 반환합니다.

tz 의 일반적인 인수는 QTimeZone::UTC 또는 QTimeZone::LocalTime 입니다. UTC는 기본 파일 시스템 API에서 반환한 시간에서 변환할 필요가 없으므로 UTC로 시간을 가져오는 것이 더 빠를 수 있습니다. 일반적으로 사용자에게 시간이 표시되는 경우 LocalTime이 선택됩니다.

index 가 유효하지 않은 경우 기본값으로 구성된 QDateTime 이 반환됩니다.

이 함수는 Qt 6.6에 도입되었습니다.

[override virtual] QMimeData *QFileSystemModel::mimeData(const QModelIndexList &indexes) const

재구현합니다: QAbstractItemModel::mimeData(const QModelIndexList &indexes) const.

지정된 indexes 에 대한 직렬화된 설명이 포함된 객체를 반환합니다. 인덱스에 해당하는 항목을 설명하는 데 사용되는 형식은 mimeTypes() 함수에서 가져옵니다.

인덱스 목록이 비어 있으면 직렬화된 빈 목록 대신 nullptr 이 반환됩니다.

[override virtual] QStringList QFileSystemModel::mimeTypes() const

재구현합니다: QAbstractItemModel::mimeTypes() const.

모델의 항목 목록을 기술하는 데 사용할 수 있는 MIME 타입 리스트를 리턴합니다.

QModelIndex QFileSystemModel::mkdir(const QModelIndex &parent, const QString &name)

parent 모델 인덱스에 name 디렉터리를 만듭니다.

QVariant QFileSystemModel::myComputer(int role = Qt::DisplayRole) const

"내 컴퓨터" 항목에 대해 지정된 role 아래에 저장된 데이터를 반환합니다.

Qt::ItemDataRole도 참조하세요 .

QStringList QFileSystemModel::nameFilters() const

모델의 이름에 적용된 필터 목록을 반환합니다.

setNameFilters()도 참조하세요 .

[override virtual] QModelIndex QFileSystemModel::parent(const QModelIndex &index) const

재구현합니다: QAbstractItemModel::parent(const QModelIndex &index) const.

QFileDevice::Permissions QFileSystemModel::permissions(const QModelIndex &index) const

index 에 대한 QFile::Permission의 전체 OR 결합 조합을 반환합니다.

bool QFileSystemModel::remove(const QModelIndex &index)

파일 시스템 모델에서 모델 항목 index 을 제거하고 파일 시스템에서 해당 파일을 삭제하며, 성공하면 true를 반환합니다. 항목을 제거할 수 없으면 false가 반환됩니다.

경고: 이 함수는 파일 시스템에서 파일을 삭제하지만 복구할 수 있는 위치로 이동하지는 않습니다.

rmdir()도 참조하세요 .

bool QFileSystemModel::rmdir(const QModelIndex &index)

파일 시스템 모델에서 모델 항목 index 에 해당하는 디렉터리를 제거하고 파일 시스템에서 해당 디렉터리를 삭제하며, 성공하면 true를 반환합니다. 디렉터리를 제거할 수 없으면 false가 반환됩니다.

경고: 이 함수는 파일 시스템에서 디렉터리를 삭제하지만 복구할 수 있는 위치로 이동하지는 않습니다.

remove()도 참조하세요 .

[override virtual] QHash<int, QByteArray> QFileSystemModel::roleNames() const

재구현합니다: QAbstractItemModel::roleNames() const.

QDir QFileSystemModel::rootDirectory() const

현재 설정된 디렉토리

rootPath()도 참조하세요 .

QString QFileSystemModel::rootPath() const

현재 설정된 루트 경로

setRootPath() 및 rootDirectory()도 참조하세요 .

[signal] void QFileSystemModel::rootPathChanged(const QString &newPath)

이 신호는 루트 경로가 newPath 로 변경될 때마다 전송됩니다.

[override virtual] int QFileSystemModel::rowCount(const QModelIndex &parent = QModelIndex()) const

재구현합니다: QAbstractItemModel::rowCount(const QModelIndex &parent) const.

[override virtual] bool QFileSystemModel::setData(const QModelIndex &idx, const QVariant &value, int role = Qt::EditRole)

재구현합니다: QAbstractItemModel::setData(const Q모델인덱스 &index, const Q변수 &value, int 역할).

data()도 참조하세요 .

void QFileSystemModel::setFilter(QDir::Filters filters)

디렉토리 모델의 필터를 filters 에 지정된 필터로 설정합니다.

설정하는 필터에는 항상 QDir::AllDirs 열거형 값을 포함해야 하며, 그렇지 않으면 QFileSystemModel 에서 디렉터리 구조를 읽을 수 없습니다.

filter() 및 QDir::Filters도 참조하세요 .

void QFileSystemModel::setIconProvider(QAbstractFileIconProvider *provider)

디렉토리 모델에 대한 파일 아이콘의 provider 을 설정합니다.

iconProvider()도 참조하세요 .

void QFileSystemModel::setNameFilters(const QStringList &filters)

기존 파일에 적용하도록 filters 이름을 설정합니다.

nameFilters()도 참조하세요 .

void QFileSystemModel::setOption(QFileSystemModel::Option option, bool on = true)

on 이 참이면 지정된 option 을 활성화하도록 설정하고, 그렇지 않으면 지정된 option 을 지웁니다.

속성을 변경하기 전에 옵션을 설정해야 합니다.

optionstestOption()도 참조하세요 .

QModelIndex QFileSystemModel::setRootPath(const QString &newPath)

file system watcher 을 설치하여 모델에서 감시 중인 디렉터리를 newPath 으로 설정합니다. 이 디렉터리 내의 파일 및 디렉터리에 대한 모든 변경 사항은 모델에 반영됩니다.

경로가 변경되면 rootPathChanged() 신호가 전송됩니다.

참고: 이 함수는 모델의 구조를 변경하거나 뷰에서 사용할 수 있는 데이터를 수정하지 않습니다. 즉, 모델의 '루트'는 파일 시스템에서 newPath 에 지정된 디렉터리 내의 파일 및 디렉터리만 포함하도록 변경되지 않습니다.

rootPath(), QTreeView::setRootIndex() 및 TreeView::rootIndex참조하십시오 .

[override virtual] QModelIndex QFileSystemModel::sibling(int row, int column, const QModelIndex &idx) const

재구현합니다: QAbstractItemModel::sibling(int row, int column, const QModelIndex &index) const.

qint64 QFileSystemModel::size(const QModelIndex &index) const

index 의 크기를 바이트 단위로 반환합니다. 파일이 존재하지 않으면 0이 반환됩니다.

[override virtual] void QFileSystemModel::sort(int column, Qt::SortOrder order = Qt::AscendingOrder)

재구현합니다: QAbstractItemModel::sort(int column, Qt::SortOrder 순서).

[override virtual] Qt::DropActions QFileSystemModel::supportedDropActions() const

재구현합니다: QAbstractItemModel::supportedDropActions() const.

bool QFileSystemModel::testOption(QFileSystemModel::Option option) const

지정된 option 이 활성화된 경우 true 을 반환하고, 그렇지 않으면 false 를 반환합니다.

optionssetOption()도 참조하세요 .

[override virtual protected] void QFileSystemModel::timerEvent(QTimerEvent *event)

다시 구현합니다: QObject::timerEvent(Q타이머이벤트 *이벤트).

QString QFileSystemModel::type(const QModelIndex &index) const

파일 유형 index (예: "디렉토리" 또는 "JPEG 파일")을 반환합니다.

© 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.