FolderListModel QML Type

폴더목록모델은 파일 시스템 폴더의 콘텐츠 모델을 제공합니다. 자세히...

Import Statement: import Qt.labs.folderlistmodel 2.8

속성

방법

자세한 설명

폴더 목록 모델은 로컬 파일 시스템의 폴더 콘텐츠에 대한 정보에 대한 액세스를 제공하여 뷰 및 기타 데이터 구성 요소에 파일 목록을 노출합니다.

참고: 이 유형은 Qt.labs.folderlistmodel 모듈을 가져와서 사용할 수 있습니다. Qt.labs 모듈의 요소는 향후 버전에서 호환성을 보장하지 않습니다.

참고: 폴더리스트모델의 일부 기능은 QFileSystemWatcher 에 의존합니다. QFileSystemWatcher 을 비활성화하면 setFolder 을 사용하여 설정된 폴더의 변경 사항을 감시하지 않으므로 일반적으로 디렉터리 변경 시 발생하는 신호(예: directoryUpdated 또는 directoryChanged)는 setFolder 을 다시 수동으로 호출하지 않으면 발생하지 않습니다. 자세한 내용은 Qt 구성 옵션을 참조하십시오.

import Qt.labs.folderlistmodel

folder 속성은 액세스할 폴더를 지정합니다. 폴더의 파일과 디렉터리에 대한 정보는 모델의 인터페이스를 통해 제공됩니다. 컴포넌트는 다음 역할을 통해 이름과 경로에 액세스합니다:

  • fileName (string)
  • filePath (string)
  • fileURL (url) (Qt 5.2 이후, Qt 5.15부터 폐지됨)
  • fileUrl (url) (Qt 5.15 이후)
  • fileBaseName (string)
  • fileSuffix (string)
  • fileSize (qlonglong)
  • fileModified (date)
  • fileAccessed (date)
  • fileIsDir (bool)

또한 isFolder() 메서드를 통해 파일 항목을 폴더 항목과 구분할 수 있습니다.

필터링

다양한 속성을 설정하여 모델에 노출되는 파일 및 디렉터리 수를 필터링할 수 있습니다.

nameFilters 속성은 파일 및 디렉터리 이름에 적용되는 와일드카드 필터 목록을 포함하도록 설정하여 필터와 일치하는 파일 및 디렉터리만 노출되도록 할 수 있습니다.

showDirs 속성을 사용하여 디렉터리를 포함하거나 제외할 수 있으며, showDotAndDotDot 속성을 false로 설정하여 탐색 디렉터리를 제외할 수도 있고, showHidden 속성을 사용하여 숨겨진 파일을 포함하거나 제외할 수도 있습니다.

사용자가 액세스할 수 있는 파일 및 디렉터리를 노출되는 파일 및 디렉터리로 제한하는 것이 유용할 때가 있습니다. showOnlyReadable 속성을 설정하여 이 기능을 활성화할 수 있습니다.

사용 예

다음 예는 ListView 에 QML 파일 목록을 제공하는 데 사용되는 FolderListModel을 보여줍니다:

import QtQuick
import Qt.labs.folderlistmodel

ListView {
    width: 200; height: 400

    FolderListModel {
        id: folderModel
        nameFilters: ["*.qml"]
    }

    Component {
        id: fileDelegate
        required property string fileName
        Text { text: fileName }
    }

    model: folderModel
    delegate: fileDelegate
}

경로 구분자

Qt는 URL에서 "/"를 경로 구분자로 사용하는 것과 같은 방식으로 범용 디렉토리 구분자로 "/"를 사용합니다. 항상 "/"를 디렉토리 구분자로 사용하는 경우, Qt는 기본 운영 체제에 맞게 경로를 변환합니다.

QML 데이터 모델도참조하십시오 .

속성 문서

caseSensitive : bool

사용 사례에 따른 패턴 일치.

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


count : int [read-only]

현재 폴더에서 필터 조건과 일치하는 항목 수를 반환합니다.


folder : url

folder 속성은 모델이 현재 제공하는 폴더의 URL을 포함합니다.

값은 file: 또는 qrc: URL 또는 상대 URL이어야 합니다.

기본값은 FolderListModel 을 처음 초기화할 때 애플리케이션의 작업 디렉터리입니다.


nameFilters : list<string>

nameFilters 속성에는 파일 이름 필터 목록이 포함되어 있습니다. 필터에는 ? 및 * 와일드카드가 포함될 수 있습니다.

아래 예는 PNG 및 JPEG 파일에 대한 필터링입니다:

FolderListModel {
    nameFilters: [ "*.png", "*.jpg" ]
}

참고: 디렉터리는 필터에서 제외되지 않습니다.


parentFolder : url [read-only]

현재 folder 의 상위 URL을 반환합니다.


rootFolder : url

이 속성을 설정하면 지정된 폴더가 파일 시스템에서 루트로 취급되어 그 안의 하위 폴더만 탐색할 수 있습니다.


showDirs : bool

true이면 디렉터리가 모델에 포함되고, 그렇지 않으면 파일만 포함됩니다.

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

nameFilters 은 디렉터리에는 적용되지 않습니다.

showDotAndDotDot참조하세요 .


showDirsFirst : bool

true이면 디렉터리가 모델에 포함되면 항상 디렉터리가 먼저 표시되고 그다음에 파일이 표시됩니다.

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


showDotAndDotDot : bool

true이면 "." 및 "..." 디렉터리가 모델에 포함되고, 그렇지 않으면 제외됩니다.

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

showDirs참조하세요 .


showFiles : bool

참이면 파일이 모델에 포함되고, 그렇지 않으면 디렉터리만 포함됩니다.

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

showDirs도 참조 하세요.


showHidden : bool

참이면 숨겨진 파일 및 디렉터리가 모델에 포함되고, 그렇지 않으면 제외됩니다.

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


showOnlyReadable : bool

참이면 읽기 가능한 파일 및 디렉터리만 표시되고, 그렇지 않으면 모든 파일 및 디렉터리가 표시됩니다.

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

showDirs참조하세요 .


sortCaseSensitive : bool

true 로 설정하면 정렬은 대소문자를 구분합니다. 이 속성은 기본적으로 true 입니다.


sortField : enumeration

sortField 속성은 정렬에 사용할 필드를 포함합니다. sortField 중 하나일 수 있습니다:

상수설명
FolderListModel.Unsorted정렬이 적용되지 않음
FolderListModel.Name파일명 기준 정렬(기본값)
FolderListModel.Time수정한 시간 기준으로 정렬
FolderListModel.Size파일 크기별로 정렬
FolderListModel.Type파일 유형/확장자별로 정렬

sortReversed참조하세요 .


sortReversed : bool

true로 설정하면 정렬 순서를 반대로 합니다. 기본값은 false입니다.

sortField도 참조 하세요.


status : enumeration [read-only]

이 속성은 폴더 읽기 상태를 저장합니다. 다음 중 하나가 될 수 있습니다:

상수설명
FolderListModel.Nullfolder 설정되지 않음
FolderListModel.Ready폴더가 로드되었습니다.
FolderListModel.Loading폴더가 현재 로드 중입니다.

이 상태를 사용하여 업데이트를 제공하거나 어떤 식으로든 상태 변경에 응답하세요. 예를 들면 다음과 같습니다:

  • 상태 변경을 트리거합니다:
    State { name: 'loaded'; when: folderModel.status == FolderListModel.Ready }
  • onStatusChanged 시그널 핸들러를 구현합니다:
    FolderListModel {
        id: folderModel
        onStatusChanged: if (folderModel.status == FolderListModel.Ready) console.log('Loaded')
    }
  • 상태 값에 바인딩합니다:
    Text { text: folderModel.status == FolderListModel.Ready ? 'Loaded' : 'Not loaded' }

메서드 문서

var get(int index, string property)

주어진 index 에 대한 property 폴더를 반환합니다. 다음 속성을 사용할 수 있습니다:

  • fileName (string)
  • filePath (string)
  • fileURL (url) (Qt 5.2 이후, Qt 5.15부터 폐지)
  • fileUrl (url) (Qt 5.15부터)
  • fileBaseName (string)
  • fileSuffix (string)
  • fileSize (qlonglong)
  • fileModified (date)
  • fileAccessed (date)
  • fileIsDir (bool)

int indexOf(url file)

모델에 지정된 file URL이 포함되어 있으면 해당 URL의 인덱스를 반환하고, 그렇지 않으면 -1을 반환합니다.


bool isFolder(int index)

index 항목이 폴더인 경우 참을 반환하고, 그렇지 않으면 거짓을 반환합니다.


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