本页内容

FolderListModel QML Type

FolderListModel 提供了一个文件系统文件夹内容的模型。更多内容...

Import Statement: import Qt.labs.folderlistmodel

属性

方法

详细说明

FolderListModel 提供对本地文件系统中文件夹内容信息的访问,并将文件列表提供给视图和其他数据组件。

注意: 导入Qt.labs.folderlistmodel 模块后即可使用此类型 。Qt.labs 模块中的元素在未来版本中不保证保持兼容性。

注意: FolderListModel 中的某些 功能依赖于QFileSystemWatcher 。如果禁用了QFileSystemWatcher ,则通过setFolder 设置的文件夹将不会被监听更改,这将导致通常在目录更改时发出的信号(如 directoryUpdated 或 directoryChanged)不会被触发,除非手动再次调用setFolder 。有关更多信息,请参阅Qt 配置选项。

import Qt.labs.folderlistmodel

folder 属性指定要访问的文件夹。该文件夹中文件和目录的相关信息通过模型的接口提供。组件可通过以下角色访问名称和路径:

  • fileName (string)
  • filePath (string)
  • fileUrl (url)(自 Qt 5.15 起)
  • fileBaseName (string)
  • fileSuffix (string)
  • fileSize (qlonglong)
  • fileModified (date)
  • fileAccessed (date)
  • fileIsDir (bool)

此外,可以通过isFolder() 方法将文件条目与文件夹条目区分开来。

过滤

可以设置各种属性来过滤模型所显示的文件和目录的数量。

nameFilters 属性可以设置为包含一个通配符过滤器列表,这些过滤器将应用于文件和目录的名称,从而只显示与过滤器匹配的文件和目录。

可以使用showDirs 属性来包含或排除目录,还可以通过将showDotAndDotDot 属性设置为 false 来排除导航目录,并使用showHidden 属性来包含或排除隐藏文件。

有时,将显示的文件和目录限制为用户可访问的范围会很有用。可设置showOnlyReadable 属性来启用此功能。

用法示例

以下示例展示了如何使用 FolderListModel 提供位于ListView 中的 QML 文件列表:

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

使用区分大小写的模式匹配。

默认情况下,此属性的值为 true。

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,则当模型中包含目录时,目录将始终优先显示,随后才是文件。

默认情况下,此属性为 false。

showDot : bool [since 6.12]

如果为真,则当前“.”目录将被包含在模型中。

默认情况下,此属性为 false。

该属性在 Qt 6.12 中引入。

另请参阅 showDotAndDotDot 和showDotDot 。

showDotAndDotDot : bool

如果为 true,则“.”和“..”目录将被包含在模型中;否则将被排除在外。

默认情况下,此属性值为 false。

另请参阅 showDirs 、showDot 和showDotDot 。

showDotDot : bool [since 6.12]

如果为 true,则“..”(父目录)将被包含在模型中。

默认情况下,此属性为 false。

该属性在 Qt 6.12 中引入。

另请参阅 showDotAndDotDot 和showDot 。

showFiles : bool

如果为 true,则文件会被包含在模型中;否则,仅包含目录。

默认情况下,此属性的值为 true。

另请参阅 showDirs 。

showHidden : bool

如果为 true,则将隐藏文件和目录包含在模型中;否则将排除它们。

默认情况下,此属性的值为 false。

showOnlyReadable : bool

如果为 true,则仅显示可读的文件和目录;否则显示所有文件和目录。

默认情况下,该属性的值为 false。

另请参阅 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.Null未设置folder
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.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 是一个文件夹,则返回true;否则返回false。

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