Sur cette page

FolderListModel QML Type

Le FolderListModel fournit un modèle du contenu d'un dossier du système de fichiers. Plus d'informations...

Import Statement: import Qt.labs.folderlistmodel 2.11

Propriétés

Méthodes

Description détaillée

FolderListModel permet d'accéder aux informations relatives au contenu d'un dossier dans le système de fichiers local, en exposant une liste de fichiers aux vues et à d'autres composants de données.

Note : Ce type est disponible en important le module Qt.labs.folderlistmodel. La compatibilité des éléments du module Qt.labs avec les versions ultérieures n'est pas garantie.

Note : Certaines fonctionnalités de FolderListModel dépendent de QFileSystemWatcher. Si QFileSystemWatcher est désactivé, le dossier défini à l'aide de setFolder n'est pas surveillé en cas de changement, ce qui fait que les signaux généralement émis en cas de changement de répertoire (comme directoryUpdated ou directoryChanged) ne sont pas émis sans appeler manuellement setFolder à nouveau. Pour plus d'informations, voir Qt Configure Options.

import Qt.labs.folderlistmodel

La propriété folder spécifie le dossier auquel il faut accéder. Les informations sur les fichiers et les répertoires du dossier sont fournies par l'interface du modèle. Les composants accèdent aux noms et aux chemins d'accès via les rôles suivants :

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

En outre, une entrée de fichier peut être différenciée d'une entrée de dossier via la méthode isFolder().

Filtrage

Diverses propriétés peuvent être définies pour filtrer le nombre de fichiers et de répertoires exposés par le modèle.

La propriété nameFilters peut contenir une liste de filtres de caractères génériques appliqués aux noms de fichiers et de répertoires, de sorte que seuls ceux qui correspondent aux filtres sont exposés.

Les répertoires peuvent être inclus ou exclus à l'aide de la propriété showDirs, les répertoires de navigation peuvent également être exclus en définissant la propriété showDotAndDotDot sur false, les fichiers cachés peuvent être inclus ou exclus à l'aide de la propriété showHidden.

Il est parfois utile de limiter les fichiers et répertoires exposés à ceux auxquels l'utilisateur peut accéder. La propriété showOnlyReadable peut être définie pour activer cette fonctionnalité.

Exemple d'utilisation

L'exemple suivant montre l'utilisation d'un FolderListModel pour fournir une liste de fichiers QML dans un site ListView:

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
}

Séparateurs de chemin

Qt utilise "/" comme séparateur universel de répertoire de la même manière que "/" est utilisé comme séparateur de chemin dans les URL. Si vous utilisez toujours "/" comme séparateur de répertoire, Qt traduira vos chemins pour se conformer au système d'exploitation sous-jacent.

Voir également les modèles de données QML.

Documentation sur les propriétés

caseSensitive : bool

Utiliser la correspondance des motifs en tenant compte de la casse.

Par défaut, cette propriété a la valeur "true" (vrai).

count : int [read-only]

Renvoie le nombre d'éléments du dossier actuel qui correspondent aux critères de filtrage.

folder : url

La propriété folder contient une URL pour le dossier que le modèle fournit actuellement.

La valeur doit être une URL file: ou qrc: ou une URL relative.

La valeur par défaut est le répertoire de travail de l'application au moment de l'initialisation de FolderListModel.

nameFilters : list<string>

La propriété nameFilters contient une liste de filtres de noms de fichiers. Les filtres peuvent inclure les caractères génériques ? et *.

L'exemple ci-dessous filtre les fichiers PNG et JPEG :

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

Note : Les répertoires ne sont pas exclus par les filtres.

parentFolder : url [read-only]

Renvoie l'URL du parent de l'adresse folder.

rootFolder : url

Lorsque cette propriété est définie, le dossier donné est traité comme la racine du système de fichiers, de sorte que vous ne pouvez parcourir que les sous-dossiers qu'il contient.

showDirs : bool

Si true, les répertoires sont inclus dans le modèle ; sinon, seuls les fichiers sont inclus.

Par défaut, cette propriété a la valeur "true".

Notez que les nameFilters ne sont pas appliqués aux répertoires.

Voir également showDotAndDotDot.

showDirsFirst : bool

Si true, si des répertoires sont inclus dans le modèle, ils seront toujours affichés en premier, puis les fichiers.

Par défaut, cette propriété est fausse.

showDotAndDotDot : bool

Si true, les répertoires "." et ".." sont inclus dans le modèle, sinon ils sont exclus.

Par défaut, cette propriété est fausse.

Voir aussi showDirs.

showFiles : bool

Si true, les fichiers sont inclus dans le modèle ; sinon, seuls les répertoires sont inclus.

Par défaut, cette propriété a la valeur "true".

Voir aussi showDirs.

showHidden : bool

Si cette propriété est vraie, les fichiers et répertoires cachés sont inclus dans le modèle ; dans le cas contraire, ils sont exclus.

Par défaut, cette propriété est fausse.

showOnlyReadable : bool

Si true, seuls les fichiers et répertoires lisibles sont affichés ; sinon, tous les fichiers et répertoires sont affichés.

Par défaut, cette propriété a la valeur "false".

Voir aussi showDirs.

sortCaseSensitive : bool

Si la valeur est true, le tri est sensible à la casse. Cette propriété est true par défaut.

sortField : enumeration

La propriété sortField contient le champ à utiliser pour le tri. sortField peut être l'un des éléments suivants :

ConstanteDescription
FolderListModel.Unsortedaucun tri n'est effectué
FolderListModel.Nametri par nom de fichier (par défaut)
FolderListModel.Timetri par heure de modification
FolderListModel.Sizetri par taille de fichier
FolderListModel.Typetri par type/extension de fichier

Voir aussi sortReversed.

sortReversed : bool

Si la valeur est true, l'ordre de tri est inversé. La valeur par défaut est false.

Voir aussi sortField.

status : enumeration [read-only]

Cette propriété indique l'état de la lecture du dossier. Elle peut être l'une des suivantes

ConstanteDescription
FolderListModel.Nullaucun folder n'a été défini
FolderListModel.Readyle dossier a été chargé
FolderListModel.Loadingle dossier est en cours de chargement

Utilisez ce statut pour fournir une mise à jour ou répondre au changement de statut d'une manière ou d'une autre. Par exemple, vous pouvez

  • Déclencher un changement d'état :
    State { name: 'loaded'; when: folderModel.status == FolderListModel.Ready }
  • mettre en œuvre un gestionnaire de signal onStatusChanged:
    FolderListModel {
        id: folderModel
        onStatusChanged: if (folderModel.status == FolderListModel.Ready) console.log('Loaded')
    }
  • se lier à la valeur de l'état :
    Text { text: folderModel.status == FolderListModel.Ready ? 'Loaded' : 'Not loaded' }

Documentation de la méthode

var get(int index, string property)

Renvoie le dossier property pour le dossier index donné. Les propriétés suivantes sont disponibles :

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

int indexOf(url file)

Renvoie l'index de l'URL file donnée si le modèle la contient, ou -1 si ce n'est pas le cas.

bool isFolder(int index)

Retourne vrai si l'entrée index est un dossier, sinon retourne faux.

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