Sur cette page

QFileSystemModel Class

La classe `QFileSystemModel` fournit un modèle de données pour le système de fichiers local. En savoir plus...

En-tête : #include <QFileSystemModel>
CMake : find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake : QT += gui
Hérite de : QAbstractItemModel

Types publics

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

Propriétés

Fonctions publiques

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

Fonctions publiques réimplémentées

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

Signaux

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

Fonctions protégées réimplémentées

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

Description détaillée

Cette classe permet d'accéder au système de fichiers local et fournit des fonctions permettant de renommer et de supprimer des fichiers et des répertoires, ainsi que d'en créer de nouveaux. Dans le cas le plus simple, elle peut être utilisée avec un widget d'affichage adapté dans le cadre d'un navigateur ou d'un filtre.

On peut accéder à QFileSystemModel via l’interface standard fournie par QAbstractItemModel, mais elle propose également des fonctions pratiques spécifiques à un modèle de répertoires. Les fonctions fileInfo(), isDir(), fileName() et filePath() fournissent des informations sur les fichiers et répertoires sous-jacents associés aux éléments du modèle. Les répertoires peuvent être créés et supprimés à l’aide de mkdir() et rmdir().

Exemple d'utilisation

Un modèle de répertoires affichant le contenu d’un répertoire par défaut est généralement construit à partir d’un objet parent :

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

Une arborescence peut être utilisée pour afficher le contenu du modèle

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

et le contenu d’un répertoire particulier peut être affiché en définissant l’index racine de l’arborescence :

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

L'index racine de la vue permet de contrôler la partie du modèle hiérarchique qui s’affiche. QFileSystemModel fournit une fonction pratique qui renvoie un index de modèle adapté à un chemin d’accès vers un répertoire au sein du modèle.

Mise en cache et performances

QFileSystemModel utilise un thread distinct pour se remplir, ce qui évite de bloquer le thread principal pendant l’interrogation du système de fichiers. Les appels à ` rowCount()` renverront ` 0 ` jusqu’à ce que le modèle ait rempli un répertoire. Le thread dans lequel réside QFileSystemModel doit exécuter une boucle d’événements pour traiter les données entrantes.

QFileSystemModel ne commence à se remplir qu’à partir du moment où setRootPath() est appelé. Cela évite toute interrogation inutile du système de fichiers racine, telle que l’énumération des lecteurs sous Windows, jusqu’à ce moment-là.

QFileSystemModel conserve un cache contenant des informations sur les fichiers. Ce cache est automatiquement mis à jour à l'aide de la méthode ` QFileSystemWatcher`.

Voir également Classes de modèles.

Documentation sur les types de membres

enum QFileSystemModel::Option
flags QFileSystemModel::Options

ConstanteValeurDescription
QFileSystemModel::DontWatchForChanges0x00000001Ne pas ajouter de surveillants de fichiers aux chemins. Cela réduit la surcharge lorsque le modèle est utilisé pour des tâches simples telles que la complétion de lignes.
QFileSystemModel::DontResolveSymlinks0x00000002Ne pas résoudre les liens symboliques dans le modèle de système de fichiers. Par défaut, les liens symboliques sont résolus.
QFileSystemModel::DontUseCustomDirectoryIcons0x00000004Utilisez toujours l’icône de répertoire par défaut. Certaines plateformes permettent à l’utilisateur de définir une icône différente. La recherche d’icônes personnalisées a un impact important sur les performances sur le réseau ou les lecteurs amovibles. Cela définit l’option QFileIconProvider::DontUseCustomDirectoryIcons dans le fournisseur d’icônes en conséquence.

Le type Options est un typedef pour QFlags<Option>. Il stocke une combinaison OR de valeurs Option.

Voir également resolveSymlinks.

enum QFileSystemModel::Roles

ConstanteValeurDescription
QFileSystemModel::FileIconRoleQt::DecorationRole 
QFileSystemModel::FilePathRoleQt::UserRole + 1 
QFileSystemModel::FileNameRoleQt::UserRole + 2 
QFileSystemModel::FilePermissionsQt::UserRole + 3 
QFileSystemModel::FileInfoRoleQt::FileInfoRoleL'objet « QFileInfo » pour l'index

Documentation sur les propriétés

nameFilterDisables : bool

Cette propriété détermine si les fichiers qui ne répondent pas au filtre de nom sont masqués ou désactivés

Cette propriété est définie par défaut sur « true »

Fonctions d'accès :

bool nameFilterDisables() const
void setNameFilterDisables(bool enable)

options : Options

Cette propriété regroupe les différentes options qui ont une incidence sur le modèle

Par défaut, toutes les options sont désactivées.

Les options doivent être définies avant de modifier les propriétés.

Fonctions d'accès :

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

Voir également setOption() et testOption().

readOnly : bool

Cette propriété indique si le modèle de répertoires autorise l'écriture sur le système de fichiers

Si cette propriété est définie sur « false », le modèle de répertoires autorisera le renommage, la copie et la suppression de fichiers et de répertoires.

Cette propriété est définie par défaut sur « true »

Fonctions d'accès :

bool isReadOnly() const
void setReadOnly(bool enable)

Cette propriété détermine si le modèle de répertoires doit résoudre les liens symboliques

Ceci ne s'applique que sous Windows.

Par défaut, cette propriété est définie sur « true ».

Fonctions d'accès :

bool resolveSymlinks() const
void setResolveSymlinks(bool enable)

Voir également QFileSystemModel::Options.

Documentation des fonctions membres

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

Construit un modèle de système de fichiers à partir de l'parent on fournie.

[virtual noexcept] QFileSystemModel::~QFileSystemModel()

Supprime ce modèle de système de fichiers.

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

Réimplémente : QAbstractItemModel::canFetchMore(const QModelIndex &parent) const.

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

Réimplémente : QAbstractItemModel::columnCount(const QModelIndex &parent) const.

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

Réimplémente : QAbstractItemModel::data(const QModelIndex &index, int role) const.

Voir également setData().

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

Ce signal est émis lorsque le thread de collecte a fini de charger l'path.

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

Réimplémente : QAbstractItemModel::dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent).

Gère l'objet ` data ` fourni par une opération de glisser-déposer qui s'est terminée par l'action ion donnée sur la ligne du modèle spécifiée par les paramètres ` row ` et ` column `, ainsi que par l'index ` parent `. Renvoie `true` si l'opération a réussi.

Voir également supportedDropActions().

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

Réimplémente : QObject::event(QEvent *e).

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

Réimplémente : QAbstractItemModel::fetchMore(const QModelIndex &parent).

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

Renvoie l'icône de l'élément stocké dans le modèle sous l'index.

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

Renvoie l'objet ` QFileInfo ` correspondant à l'élément stocké dans le modèle sous l'index` indiquée.

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

Renvoie le nom du fichier correspondant à l'élément stocké dans le modèle sous l'index.

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

Renvoie le chemin d'accès de l'élément stocké dans le modèle sous l'index e indiquée.

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

Ce signal est émis chaque fois qu'un fichier portant le nom « oldName » est renommé avec succès en « newName ». Le fichier se trouve dans le répertoire « path ».

QDir::Filters QFileSystemModel::filter() const

Renvoie le filtre spécifié pour le modèle de répertoire.

Si aucun filtre n’a été défini, le filtre par défaut est QDir::AllEntries | QDir::NoDotAndDotDot | QDir::AllDirs.

Voir également setFilter() et QDir::Filters.

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

Réimplémente : QAbstractItemModel::flags(const QModelIndex &index) const.

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

Réimplémente : ` QAbstractItemModel::hasChildren(const QModelIndex &parent) const`.

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

Réimplémente : QAbstractItemModel::headerData(int section, Qt::Orientation orientation, int role) const.

QAbstractFileIconProvider *QFileSystemModel::iconProvider() const

Renvoie le fournisseur d'icônes de fichiers pour ce modèle de répertoire.

Voir également setIconProvider().

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

Réimplémente : QAbstractItemModel::index(int row, int column, const QModelIndex &parent) const.

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

Renvoie l'index de l'élément de modèle correspondant aux valeurs données path et column.

Il s'agit d'une fonction surchargée.

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

Renvoie « true » si l'élément du modèle « index » représente un répertoire ; sinon, renvoie « false ».

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

Renvoie la date et l'heure (en heure locale) de la dernière modification de index.

Il s'agit d'une fonction surchargée, équivalente à l'appel suivant :

lastModified(index, QTimeZone::LocalTime);

Si index n’est pas valide, un objet QDateTime construit par défaut est renvoyé.

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

Renvoie la date et l'heure, dans le fuseau horaire tz, de la dernière modification de index.

Les arguments courants pour tz sont QTimeZone::UTC ou QTimeZone::LocalTime. Le fuseau horaire UTC ne nécessite aucune conversion à partir de l'heure renvoyée par l'API native du système de fichiers ; par conséquent, l'obtention de l'heure en UTC est potentiellement plus rapide. LocalTime est généralement choisi si l'heure est affichée à l'utilisateur.

Si l’argument ` index ` n’est pas valide, un objet ` QDateTime ` construit par défaut est renvoyé.

Cette fonction a été introduite dans Qt 6.6.

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

Réimplémente : QAbstractItemModel::mimeData(const QModelIndexList &indexes) const.

Renvoie un objet contenant une description sérialisée de la liste d'index spécifiée indexes. Le format utilisé pour décrire les éléments correspondant aux index est obtenu à partir de la fonction mimeTypes().

Si la liste des index est vide, nullptr est renvoyé à la place d’une liste vide sérialisée.

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

Réimplémente : QAbstractItemModel::mimeTypes() const.

Renvoie une liste de types MIME pouvant être utilisés pour décrire une liste d'éléments du modèle.

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

Créez un répertoire portant le nom « name » dans l'index du modèle « parent ».

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

Renvoie les données stockées sous l'role e indiquée pour l'élément « Poste de travail ».

Voir aussi Qt::ItemDataRole.

QStringList QFileSystemModel::nameFilters() const

Renvoie une liste des filtres appliqués aux noms du modèle.

Voir aussi setNameFilters().

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

Réimplémente : QAbstractItemModel::parent(const QModelIndex &index) const.

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

Renvoie la combinaison complète, via l'opérateur « OU », des QFile::Permission pour l'index.

bool QFileSystemModel::remove(const QModelIndex &index)

Supprime l'élément « index » du modèle du système de fichiers et supprime le fichier correspondant du système de fichiers; renvoie « true » en cas de réussite. Si l'élément ne peut pas être supprimé, la fonction renvoie « false ».

Avertissement : cette fonction supprime des fichiers du système de fichiers ; elle ne les déplace pas vers un emplacement où ils pourraient être récupérés.

Voir aussi rmdir().

bool QFileSystemModel::rmdir(const QModelIndex &index)

Supprime le répertoire correspondant à l'élément de modèle « index » dans le modèle du système de fichiers et supprime le répertoire correspondant du système de fichiers; renvoie « true » en cas de réussite. Si le répertoire ne peut pas être supprimé, la fonction renvoie « false ».

Avertissement : cette fonction supprime des répertoires du système de fichiers ; elle ne les déplace pas vers un emplacement où ils pourraient être récupérés.

Voir également remove().

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

Réimplémente : ` QAbstractItemModel::roleNames()` const.

QDir QFileSystemModel::rootDirectory() const

Le répertoire actuellement défini

Voir également la fonction ` rootPath()`.

QString QFileSystemModel::rootPath() const

Le chemin racine actuellement défini

Voir également setRootPath() et rootDirectory().

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

Ce signal est émis chaque fois que le chemin d'accès racine a été modifié pour devenir newPath.

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

Réimplémente : QAbstractItemModel::rowCount(const QModelIndex &parent) const.

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

Réimplémente : QAbstractItemModel::setData(const QModelIndex &index, const QVariant &value, int role).

Voir aussi data().

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

Définit le filtre du modèle de répertoire sur celui spécifié par filters.

Notez que le filtre que vous définissez doit toujours inclure la valeur de l'énumération QDir::AllDirs, sinon QFileSystemModel ne pourra pas lire la structure du répertoire.

Voir également filter() et QDir::Filters.

void QFileSystemModel::setIconProvider(QAbstractFileIconProvider *provider)

Définit l'provider s des icônes de fichiers pour le modèle de répertoire.

Voir aussi iconProvider().

void QFileSystemModel::setNameFilters(const QStringList &filters)

Définit le nom « filters » à appliquer aux fichiers existants.

Voir aussi nameFilters().

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

Active l'option spécifiée si la valeur de « on » est « true » ; dans le cas contraire, désactive l'option spécifiée.

Les options doivent être définies avant de modifier les propriétés.

Voir également options et testOption().

QModelIndex QFileSystemModel::setRootPath(const QString &newPath)

Définit le répertoire surveillé par le modèle sur newPath en y installant un « file system watcher ». Toute modification apportée aux fichiers et répertoires contenus dans ce répertoire sera répercutée dans le modèle.

Si le chemin d’accès est modifié, le signal ` rootPathChanged()` sera émis.

Remarque : cette fonction ne modifie pas la structure du modèle ni les données accessibles aux vues. En d’autres termes, la « racine » du modèle n’ est pas modifiée pour n’inclure que les fichiers et répertoires situés dans le répertoire spécifié par ` newPath ` au sein du système de fichiers.

Voir également rootPath(), QTreeView::setRootIndex() et TreeView::rootIndex.

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

Réimplémente : QAbstractItemModel::sibling(int row, int column, const QModelIndex &index) const.

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

Renvoie la taille en octets de index. Si le fichier n'existe pas, la fonction renvoie 0.

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

Réimplémente : QAbstractItemModel::sort(int column, Qt::SortOrder order).

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

Réimplémente : QAbstractItemModel::supportedDropActions() const.

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

Renvoie « true » si l’option « option » est activée ; sinon, renvoie « false ».

Voir également options et setOption().

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

Réimplémente : QObject::timerEvent(QTimerEvent *event).

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

Renvoie le type de fichier index, par exemple « Répertoire » ou « Fichier JPEG ».

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