Sur cette page

QDir Class

La classe QDir permet d'accéder aux structures de répertoires et à leur contenu. En savoir plus...

En-tête : #include <QDir>
CMake : find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake : QT += core

Remarque : toutes les fonctions de cette classe sont réentrantes.

Comparaisons de QDir

CatégorieTypes comparables
égalitéQDir

Types publics

enum Filter { Dirs, AllDirs, Files, Drives, NoSymLinks, …, CaseSensitive }
flags Filters
enum SortFlag { Name, Time, Size, Type, Unsorted, …, LocaleAware }
flags SortFlags

Fonctions publiques

QDir(const QString &path = QString())
(since 6.0) QDir(const std::filesystem::path &path)
QDir(const QString &path, const QString &nameFilter, QDir::SortFlags sort = SortFlags(Name | IgnoreCase), QDir::Filters filters = AllEntries)
(since 6.0) QDir(const std::filesystem::path &path, const QString &nameFilter, QDir::SortFlags sort = SortFlags(Name | IgnoreCase), QDir::Filters filters = AllEntries)
QDir(const QDir &dir)
~QDir()
QString absoluteFilePath(const QString &fileName) const
QString absolutePath() const
QString canonicalPath() const
bool cd(const QString &dirName)
bool cdUp()
qsizetype count() const
QString dirName() const
QFileInfoList entryInfoList(const QStringList &nameFilters, QDir::Filters filters = NoFilter, QDir::SortFlags sort = NoSort) const
QFileInfoList entryInfoList(QDir::Filters filters = NoFilter, QDir::SortFlags sort = NoSort) const
QStringList entryList(const QStringList &nameFilters, QDir::Filters filters = NoFilter, QDir::SortFlags sort = NoSort) const
QStringList entryList(QDir::Filters filters = NoFilter, QDir::SortFlags sort = NoSort) const
bool exists(const QString &name) const
bool exists() const
QString filePath(const QString &fileName) const
(since 6.0) std::filesystem::path filesystemAbsolutePath() const
(since 6.0) std::filesystem::path filesystemCanonicalPath() const
(since 6.0) std::filesystem::path filesystemPath() const
QDir::Filters filter() const
bool isAbsolute() const
bool isEmpty(QDir::Filters filters = Filters(AllEntries | NoDotAndDotDot)) const
bool isReadable() const
bool isRelative() const
bool isRoot() const
bool makeAbsolute()
bool mkdir(const QString &dirName, std::optional<QFileDevice::Permissions> permissions = std::nullopt) const
bool mkpath(const QString &dirPath, std::optional<QFileDevice::Permissions> permissions = std::nullopt) const
QStringList nameFilters() const
QString path() const
void refresh() const
QString relativeFilePath(const QString &fileName) const
bool remove(const QString &fileName)
bool removeRecursively()
bool rename(const QString &oldName, const QString &newName)
bool rmdir(const QString &dirName) const
bool rmpath(const QString &dirPath) const
void setFilter(QDir::Filters filters)
void setNameFilters(const QStringList &nameFilters)
void setPath(const QString &path)
(since 6.0) void setPath(const std::filesystem::path &path)
void setSorting(QDir::SortFlags sort)
QDir::SortFlags sorting() const
void swap(QDir &other)
QDir &operator=(QDir &&other)
QDir &operator=(const QDir &dir)
QString operator[](qsizetype pos) const

Membres publics statiques

void addSearchPath(const QString &prefix, const QString &path)
(since 6.0) void addSearchPath(const QString &prefix, const std::filesystem::path &path)
QString cleanPath(const QString &path)
QDir current()
QString currentPath()
QFileInfoList drives()
QString fromNativeSeparators(const QString &pathName)
QDir home()
QString homePath()
bool isAbsolutePath(const QString &path)
bool isRelativePath(const QString &path)
QChar listSeparator()
bool match(const QString &filter, const QString &fileName)
bool match(const QStringList &filters, const QString &fileName)
QDir root()
QString rootPath()
QStringList searchPaths(const QString &prefix)
QChar separator()
bool setCurrent(const QString &path)
void setSearchPaths(const QString &prefix, const QStringList &searchPaths)
QDir temp()
QString tempPath()
QString toNativeSeparators(const QString &pathName)
bool operator!=(const QDir &lhs, const QDir &rhs)
bool operator==(const QDir &lhs, const QDir &rhs)

Description détaillée

Un objet QDir sert à manipuler les chemins d'accès, à accéder aux informations relatives aux chemins et aux fichiers, ainsi qu'à manipuler le système de fichiers sous-jacent. Il peut également être utilisé pour accéder au système de ressources de Qt.

Qt utilise « / » comme séparateur universel de répertoires, de la même manière que « / » est utilisé comme séparateur de chemin dans les URL. Si vous utilisez systématiquement « / » comme séparateur de répertoires, Qt convertira vos chemins d'accès pour les adapter au système d'exploitation sous-jacent.

Un QDir peut pointer vers un fichier à l'aide d'un chemin relatif ou absolu. Les chemins absolus commencent par le séparateur de répertoires (éventuellement précédé d'une spécification de lecteur sous Windows). Les noms de fichiers relatifs commencent par un nom de répertoire ou un nom de fichier et spécifient un chemin relatif au répertoire courant.

Exemples de chemins absolus :

QDir("/home/user/Documents");
QDir("C:/Users");

Sous Windows, le deuxième exemple ci-dessus sera converti en « C:\Users » lorsqu'il sera utilisé pour accéder à des fichiers.

Exemples de chemins relatifs :

QDir("images/landscape.png");

Vous pouvez utiliser les fonctions ` isRelative()` ou ` isAbsolute()` pour vérifier si un `QDir` utilise un chemin d'accès relatif ou absolu. Appelez ` makeAbsolute()` pour convertir un `QDir` relatif en un `QDir` absolu.

Remarque : les chemins commençant par deux points (:) sont toujours considérés comme absolus, car ils désignent un QResource.

Le chemin d'accès d'un répertoire peut être obtenu à l'aide de la fonction ` path()` et un nouveau chemin peut être défini à l'aide de la fonction ` setPath()`. Le chemin absolu d'un répertoire s'obtient en appelant la fonction ` absolutePath()`.

Le nom d'un répertoire est obtenu à l'aide de la fonction dirName(). Celle-ci renvoie généralement le dernier élément du chemin absolu qui spécifie l'emplacement du répertoire. Cependant, elle peut également renvoyer « . » si le QDir représente le répertoire courant.

QDir("Documents/Letters/Applications").dirName(); // "Applications"
QDir().dirName();                                 // "."

Le chemin d’accès d’un répertoire peut également être modifié à l’aide des fonctions ` cd()` et ` cdUp()`, qui fonctionnent toutes deux comme des commandes de shell courantes. Lorsque la fonction ` cd()` est appelée avec le nom d’un répertoire existant, l’objet `QDir` change de répertoire pour représenter ce dernier à la place. La fonction cdUp() modifie le répertoire de l’objet QDir de sorte qu’il fasse référence à son répertoire parent ; c’est-à-dire que cd("..") équivaut à cdUp().

Les répertoires peuvent être créés avec ` mkdir()`, renommés avec ` rename()` et supprimés avec ` rmdir()`.

Vous pouvez vérifier la présence d’un répertoire portant un nom donné à l’aide de la fonction ` exists()`, et les propriétés d’un répertoire peuvent être vérifiées à l’aide des fonctions ` isReadable()`, ` isAbsolute()`, ` isRelative()` et ` isRoot()`.

La fonction refresh() relit les données du répertoire à partir du disque.

Fichiers et contenu des répertoires

Les répertoires contiennent un certain nombre d’entrées, représentant des fichiers, des répertoires et des liens symboliques. Le nombre d’entrées d’un répertoire est renvoyé par la fonction ` count()`. Une liste de chaînes de caractères contenant les noms de toutes les entrées d’un répertoire peut être obtenue à l’aide de la fonction ` entryList()`. Si vous avez besoin d’informations sur chaque entrée, utilisez la fonction ` entryInfoList()` pour obtenir une liste d’objets ` QFileInfo `.

Les chemins d’accès aux fichiers et répertoires contenus dans un répertoire peuvent être construits à l’aide de ` filePath()` et ` absoluteFilePath()`. La fonction ` filePath()` renvoie un chemin d’accès relatif vers le fichier ou le répertoire spécifié, par rapport au chemin de l’objet `QDir` ; ` absoluteFilePath()` renvoie un chemin d’accès absolu vers le fichier ou le répertoire spécifié. Aucune de ces fonctions ne vérifie l’existence des fichiers ou des répertoires ; elles se contentent de construire des chemins d’accès.

QDir directory("Documents/Letters");
QString path = directory.filePath("contents.txt");
QString absolutePath = directory.absoluteFilePath("contents.txt");

Les fichiers peuvent être supprimés à l’aide de la fonction remove(). Les répertoires ne peuvent pas être supprimés de la même manière que les fichiers ; utilisez plutôt rmdir() pour les supprimer.

Il est possible de réduire le nombre d’entrées renvoyées par entryList() et entryInfoList() en appliquant des filtres à un objet QDir. Vous pouvez appliquer un filtre de nom pour spécifier un motif avec des caractères génériques auquel les noms de fichiers doivent correspondre, un filtre d’attribut qui sélectionne les propriétés des entrées et permet de distinguer les fichiers des répertoires, ainsi qu’un ordre de tri.

Les filtres de nom sont des listes de chaînes de caractères transmises à la fonction ` setNameFilters()`. Les filtres d’attributs consistent en une combinaison par OU binaire de filtres, et ceux-ci sont spécifiés lors de l’appel de la fonction ` setFilter()`. L’ordre de tri est spécifié à l’aide de la fonction ` setSorting()` avec une combinaison par OU binaire de filtres ` SortFlags`.

Vous pouvez vérifier si un nom de fichier correspond à un filtre à l’aide de la fonction match().

Des indicateurs de filtre et d’ordre de tri peuvent également être spécifiés lors de l’appel de entryList() et entryInfoList() afin de remplacer le comportement défini précédemment.

Le répertoire courant et d'autres chemins spéciaux

L'accès à certains répertoires courants est assuré par un certain nombre de fonctions statiques qui renvoient des objets QDir. Il existe également des fonctions correspondantes qui renvoient des chaînes de caractères :

QDirQStringValeur de retour
current()currentPath()Répertoire de travail de l'application
home()homePath()Le répertoire personnel de l'utilisateur
root()rootPath()Le répertoire racine
temp()tempPath()Le répertoire temporaire du système

La fonction statique setCurrent() peut également être utilisée pour définir le répertoire de travail de l'application.

Si vous souhaitez trouver le répertoire contenant l'exécutable de l'application, consultez la fonction QCoreApplication::applicationDirPath().

La fonction statique drives() fournit une liste des répertoires racines pour chaque périphérique contenant un système de fichiers. Sur les systèmes Unix, cette fonction renvoie une liste contenant un seul répertoire racine « / » ; sous Windows, la liste contient généralement C:/, et éventuellement d'autres lettres de lecteur telles que D:/, selon la configuration du système de l'utilisateur.

Manipulation des chemins d'accès et des chaînes de caractères

Les chemins contenant des éléments « . » qui font référence au répertoire courant à cet endroit du chemin, des éléments « .. » qui font référence au répertoire parent, ainsi que des liens symboliques, peuvent être ramenés à une forme canonique à l'aide de la fonction canonicalPath().

Les chemins d'accès peuvent également être simplifiés à l'aide de la fonction cleanPath() afin de supprimer les éléments « / » et « .. » redondants.

Il est parfois nécessaire de pouvoir afficher un chemin dans la représentation native de la plate-forme de l’utilisateur. La fonction statique ` toNativeSeparators()` renvoie une copie du chemin spécifié dans laquelle chaque séparateur de répertoire est remplacé par le séparateur approprié pour le système d’exploitation sous-jacent.

Exemples

Vérifier si un répertoire existe :

QDir dir("exemple");
if (!dir.exists())
    qWarning("Cannot find the example directory");

(Nous pourrions également utiliser l'une des fonctions statiques pratiques : QFileInfo::exists() ou QFile::exists().)

Parcourir des répertoires et lire un fichier :

QDir dir = QDir::root();                 // « / »
if (!dir.cd("tmp")) {                    // « /tmp »
    qWarning("Cannot find the \"/tmp\" directory");
} else {
    QFile file(dir.filePath("ex1.txt")); // "/tmp/ex1.txt"
    if (!file.open(QIODevice::ReadWrite))
        qWarning("Cannot create the file %s", qPrintable(file.fileName()));
}

Un programme qui répertorie tous les fichiers du répertoire actuel (à l'exception des liens symboliques), triés par taille, du plus petit au plus grand :

#include <QDir>
#include <iostream>
#include <QCoreApplication>

int main(int argc, char *argv[])
{
    QCoreApplication app(argc, argv);
    QDir dir;
    dir.setFilter(QDir::Files | QDir::Hidden | QDir::NoSymLinks);
    dir.setSorting(QDir::Size | QDir::Reversed);

    QFileInfoList list = dir.entryInfoList();
    std::cout << "     Bytes Filename" << std::endl;
    for (int i = 0; i < list.size(); ++i) {
        QFileInfo fileInfo = list.at(i);
        std::cout << qPrintable(QString("%1 %2").arg(fileInfo.size(), 10)
                                                .arg(fileInfo.fileName()));
        std::cout << std::endl;
    }
    return 0;
}

Problèmes spécifiques à certaines plateformes

Sous Android, certaines restrictions s'appliquent lors de la gestion des URI de contenu:

Voir également QFileInfo, QFile, QFileDialog, QCoreApplication::applicationDirPath() et l’exemple « Fetch More ».

Documentation sur les types de membres

enum QDir::Filter
flags QDir::Filters

Cette énumération décrit les options de filtrage disponibles pour QDir; par exemple pour entryList() et entryInfoList(). La valeur du filtre est spécifiée en combinant des valeurs issues de la liste suivante à l’aide de l’opérateur OR binaire :

ConstanteValeurDescription
QDir::Dirs0x001Répertorier les répertoires qui correspondent aux filtres.
QDir::AllDirs0x400Répertorie tous les répertoires ; c'est-à-dire n'applique pas les filtres aux noms de répertoires.
QDir::Files0x002Afficher les fichiers.
QDir::Drives0x004Afficher les lecteurs de disque (ignorés sous Unix).
QDir::NoSymLinks0x008Ne pas lister les liens symboliques (ignorés par les systèmes d'exploitation qui ne prennent pas en charge les liens symboliques).
QDir::NoDotAndDotDotNoDot | NoDotDotNe pas afficher les entrées spéciales « . » et « .. ».
QDir::NoDot0x2000Ne pas afficher l'entrée spéciale « . ».
QDir::NoDotDot0x4000Ne pas afficher l'entrée spéciale « .. ».
QDir::AllEntriesDirs | Files | DrivesRépertorier les répertoires, les fichiers, les lecteurs et les liens symboliques (cette option ne répertorie pas les liens symboliques rompus, sauf si vous spécifiez « System »).
QDir::Readable0x010Répertorier les fichiers pour lesquels l'application dispose d'un accès en lecture. La valeur « Readable » doit être combinée avec « Dirs » ou « Files ».
QDir::Writable0x020Répertorier les fichiers pour lesquels l'application dispose d'un accès en écriture. La valeur « Writable » doit être combinée avec « Dirs » ou « Files ».
QDir::Executable0x040Afficher les fichiers pour lesquels l'application dispose d'un accès en exécution. La valeur « Executable » doit être combinée avec « Dirs » ou « Files ».
QDir::Hidden0x100Répertorie les fichiers cachés (sous Unix, les fichiers commençant par un « . »).
QDir::System0x200Répertorie les fichiers système (sous Unix, les FIFO, les sockets et les fichiers de périphériques sont inclus ; sous Windows, les fichiers « .lnk » sont inclus)
QDir::CaseSensitive0x800Le filtre doit être sensible à la casse.

Les fonctions utilisant les valeurs de l’énumération « Filter » pour filtrer des listes de fichiers et de répertoires incluront les liens symboliques vers les fichiers et répertoires, sauf si vous définissez la valeur « NoSymLinks ».

Un filtre « QDir » construit par défaut ne filtrera pas les fichiers en fonction de leurs droits d’accès ; ainsi, les fonctions ` entryList()` et ` entryInfoList()` renverront tous les fichiers lisibles, modifiables, exécutables ou toute combinaison de ces trois types. Cela rend le filtre par défaut facile à écrire et, en même temps, utile.

Par exemple, en activant les indicateurs Readable, Writable et Files, on permet de lister tous les fichiers pour lesquels l’application dispose d’un accès en lecture, en écriture ou les deux. Si les indicateurs Dirs et Drives sont également inclus dans cette combinaison, alors tous les disques, répertoires, tous les fichiers que l’application peut lire, écrire ou exécuter, ainsi que les liens symboliques vers ces fichiers/répertoires, peuvent être listés.

Pour récupérer les droits d’accès d’un répertoire, utilisez la fonction ` entryInfoList()` afin d’obtenir les objets ` QFileInfo ` associés, puis utilisez la fonction ` QFileInfo::permissions()` pour obtenir les droits d’accès et le propriétaire de chaque fichier.

Le type `Filters` est un `typedef` pour ` QFlags<Filter>`. Il stocke une combinaison « OU » de valeurs `Filter`.

enum QDir::SortFlag
flags QDir::SortFlags

Cette énumération décrit les options de tri disponibles pour la fonction ` QDir`, par exemple pour ` entryList()` et ` entryInfoList()`. La valeur de tri est définie en combinant par opération OU les valeurs de la liste suivante :

ConstanteValeurDescription
QDir::Name0x00Trier par nom.
QDir::Time0x01Trier par date (date de modification).
QDir::Size0x02Trier par taille de fichier.
QDir::Type0x80Trier par type de fichier (extension).
QDir::Unsorted0x03Ne pas trier.
QDir::NoSort-1Non trié par défaut.
QDir::DirsFirst0x04Afficher d'abord les répertoires, puis les fichiers.
QDir::DirsLast0x20Afficher d'abord les fichiers, puis les répertoires.
QDir::Reversed0x08Inverser l'ordre de tri.
QDir::IgnoreCase0x10Trier sans tenir compte de la casse.
QDir::LocaleAware0x40Trier les éléments de manière appropriée en fonction des paramètres régionaux actuels.

Vous ne pouvez spécifier qu'une seule des quatre premières options.

Si vous spécifiez à la fois DirsFirst et Reversed, les répertoires sont toujours placés en premier, mais dans l'ordre inverse ; les fichiers seront répertoriés après les répertoires, là encore dans l'ordre inverse.

Le type `SortFlags` est un `typedef` pour ` QFlags<SortFlag>`. Il stocke une combinaison OR de valeurs `SortFlag`.

Documentation des fonctions membres

QDir::QDir(const QString &path = QString())

Crée un objet QDir pointant vers le répertoire indiqué path. Si path est vide, c'est le répertoire de travail du programme (« . ») qui est utilisé.

Voir aussi currentPath().

[since 6.0] QDir::QDir(const std::filesystem::path &path)

Crée un objet QDir pointant vers le répertoire spécifié path. Si path est vide, c'est le répertoire de travail du programme (« . ») qui est utilisé.

Cette fonction a été introduite dans Qt 6.0.

Voir également currentPath().

QDir::QDir(const QString &path, const QString &nameFilter, QDir::SortFlags sort = SortFlags(Name | IgnoreCase), QDir::Filters filters = AllEntries)

Crée un QDir avec le chemin path, qui filtre ses entrées par nom à l'aide de nameFilter et par attributs à l'aide de filters. Il trie également les noms à l'aide de sort.

Par défaut, nameFilter est une chaîne vide, ce qui n'exclut rien ; par défaut, filters est AllEntries, ce qui n'exclut rien non plus. Par défaut, sort est Name | IgnoreCase, c'est-à-dire un tri par nom sans distinction de casse.

Si path est une chaîne vide, QDir utilise « . » (le répertoire courant). Si nameFilter est une chaîne vide, QDir utilise le filtre de nom « * » (tous les fichiers).

Remarque : path n’a pas besoin d’exister.

Voir également exists(), setPath(), setNameFilters(), setFilter() et setSorting().

[since 6.0] QDir::QDir(const std::filesystem::path &path, const QString &nameFilter, QDir::SortFlags sort = SortFlags(Name | IgnoreCase), QDir::Filters filters = AllEntries)

Crée un QDir avec le chemin path, qui filtre ses éléments par nom à l'aide de nameFilter et par attributs à l'aide de filters. Il trie également les noms à l'aide de sort.

Par défaut, nameFilter est une chaîne vide, ce qui n'exclut rien ; par défaut, filters est AllEntries, ce qui n'exclut rien non plus. Par défaut, sort est Name | IgnoreCase, c'est-à-dire un tri par nom sans distinction de casse.

Si path est vide, QDir utilise « . » (le répertoire courant). Si nameFilter est une chaîne vide, QDir utilise le filtre de nom « * » (tous les fichiers).

Remarque : path n’a pas besoin d’exister.

Cette fonction a été introduite dans Qt 6.0.

Voir également exists(), setPath(), setNameFilters(), setFilter() et setSorting().

QDir::QDir(const QDir &dir)

Crée un objet QDir qui est une copie de l'objet QDir correspondant au répertoire dir.

Voir aussi operator=().

[noexcept] QDir::~QDir()

Supprime l'objet « QDir » et libère ses ressources. Cela n'a aucun effet sur le répertoire sous-jacent du système de fichiers.

QString QDir::absoluteFilePath(const QString &fileName) const

Renvoie le chemin d'accès absolu d'un fichier situé dans le répertoire. Ne vérifie pas si le fichier existe réellement dans le répertoire ; voir toutefois exists(). Les séparateurs multiples redondants ou les répertoires « . » et « .. » présents dans fileName ne sont pas supprimés (voir cleanPath()).

Voir également relativeFilePath(), filePath() et canonicalPath().

QString QDir::absolutePath() const

Renvoie le chemin absolu (un chemin commençant par « / » ou par la spécification d'un lecteur), qui peut contenir des liens symboliques, mais ne contient jamais de caractères « . », « .. » redondants ni de séparateurs multiples.

Voir également setPath(), canonicalPath(), exists(), cleanPath(), dirName() et absoluteFilePath().

[static] void QDir::addSearchPath(const QString &prefix, const QString &path)

Ajoute path au chemin de recherche pour prefix.

Voir également setSearchPaths().

[static, since 6.0] void QDir::addSearchPath(const QString &prefix, const std::filesystem::path &path)

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

Cette fonction a été introduite dans Qt 6.0.

QString QDir::canonicalPath() const

Renvoie le chemin canonique, c'est-à-dire un chemin sans liens symboliques ni éléments redondants « . » ou « .. ».

Sur les systèmes ne disposant pas de liens symboliques, cette fonction renvoie toujours la même chaîne que celle renvoyée par absolutePath(). Cette méthode renvoie une chaîne vide si l'entrée n'existe pas, n'est pas accessible (par exemple, si l'utilisateur actuel n'a pas accès à un chemin de répertoire) ou si une erreur se produit lors de la canonicalisation du chemin (généralement en raison de liens symboliques orphelins).

Exemple :

QString bin = "/local/bin";         // where /local/bin is a symlink to /usr/bin
QDir binDir(bin);
QString canonicalBin = binDir.canonicalPath();
// canonicalBin now equals "/usr/bin"

QString ls = "/local/bin/ls";       // where ls is the executable "ls"
QDir lsDir(ls);
QString canonicalLs = lsDir.canonicalPath();
// canonicalLS now equals "/usr/bin/ls".

Voir également path(), absolutePath(), exists(), cleanPath(), dirName() et absoluteFilePath().

bool QDir::cd(const QString &dirName)

Modifie le répertoire de l'QDir pour le remplacer par dirName.

Renvoie true si le nouveau répertoire existe ; sinon, renvoie false. Notez que l'opération logique cd() n'est pas effectuée si le nouveau répertoire n'existe pas.

L'appel de cd("..") équivaut à l'appel de cdUp().

Voir également cdUp(), isReadable(), exists() et path().

bool QDir::cdUp()

Permet de changer de répertoire en remontant d'un niveau par rapport au répertoire courant de l'QDir.

Renvoie ` true ` si le nouveau répertoire existe ; sinon, renvoie ` false`. Notez que l'opération logique `cdUp()` n'est pas effectuée si le nouveau répertoire n'existe pas.

Remarque : sous Android, cette fonctionnalité n’est pas prise en charge pour les URI de contenu. Pour plus d’informations, voir DocumentFile.getParentFile().

Voir également cd(), isReadable(), exists() et path().

[static] QString QDir::cleanPath(const QString &path)

Renvoie path avec les séparateurs de répertoires normalisés (c'est-à-dire les séparateurs natifs de la plateforme convertis en « / ») et les séparateurs redondants supprimés, et les « . » et « .. » résolus (dans la mesure du possible).

Les liens symboliques sont conservés. Cette fonction ne renvoie pas le chemin canonique, mais plutôt la version la plus simple de l'entrée. Par exemple, « ./local » devient « local », « local/../bin » devient « bin » et « /local/usr/../bin » devient « /local/bin ».

Voir également absolutePath() et canonicalPath().

qsizetype QDir::count() const

Renvoie le nombre total de répertoires et de fichiers présents dans le répertoire.

Équivalent à ` entryList()`.count().

Remarque : dans les versions de Qt antérieures à la version 6.5, cette fonction renvoyait « uint » et non « qsizetype ».

Voir aussi operator[]() et entryList().

[static] QDir QDir::current()

Renvoie le répertoire actuel de l'application.

Le répertoire est construit à partir du chemin absolu du répertoire actuel, ce qui garantit que sa méthode ` path()` renverra la même valeur que sa méthode ` absolutePath()`.

Voir également currentPath(), setCurrent(), home(), root() et temp().

[static] QString QDir::currentPath()

Renvoie le chemin absolu du répertoire courant de l'application. Le répertoire courant correspond au dernier répertoire défini à l'aide de la fonction QDir::setCurrent() ou, si celle-ci n'a jamais été appelée, au répertoire à partir duquel cette application a été lancée par le processus parent.

Voir également current(), setCurrent(), homePath(), rootPath(), tempPath() et QCoreApplication::applicationDirPath().

QString QDir::dirName() const

Renvoie le nom du répertoire ; celui-ci n' est pas identique au chemin d'accès. Par exemple, un répertoire nommé « mail » peut avoir pour chemin d'accès « /var/spool/mail ». Si le répertoire n'a pas de nom (par exemple, s'il s'agit du répertoire racine), une chaîne vide est renvoyée.

Aucune vérification n'est effectuée pour s'assurer qu'un répertoire portant ce nom existe réellement ; voir toutefois exists().

Voir également path(), filePath(), absolutePath() et absoluteFilePath().

[static] QFileInfoList QDir::drives()

Renvoie une liste des répertoires racines de ce système.

Sous Windows, cette fonction renvoie une liste d'objets de type ` QFileInfo ` contenant « C:/ », « D:/ », etc. Elle ne renvoie pas les lecteurs contenant des supports amovibles vides. Sur les autres systèmes d'exploitation, elle renvoie une liste ne contenant qu'un seul répertoire racine (c'est-à-dire « / »).

Voir également root() et rootPath().

QFileInfoList QDir::entryInfoList(const QStringList &nameFilters, QDir::Filters filters = NoFilter, QDir::SortFlags sort = NoSort) const

Renvoie une liste d’objets ` QFileInfo ` correspondant à tous les fichiers et répertoires du répertoire, classés selon les filtres de nom et d’attributs précédemment définis avec ` setNameFilters()` et ` setFilter()`, et triés selon les indicateurs définis avec ` setSorting()`.

Le filtre de nom, le filtre d’attributs de fichier et la spécification de tri peuvent être remplacés à l’aide des arguments nameFilters, filters et sort.

Renvoie une liste vide si le répertoire est illisible, n’existe pas ou si aucune entrée ne correspond aux spécifications.

Pour les répertoires volumineux, cette fonction peut entraîner un pic de mémoire car elle crée une instance de ` QFileInfo ` pour chaque entrée du répertoire. Envisagez d'utiliser ` QDirListing ` si l'objectif est de parcourir les éléments un par un.

Voir également entryList(), setNameFilters(), setSorting(), setFilter(), isReadable() et exists().

QFileInfoList QDir::entryInfoList(QDir::Filters filters = NoFilter, QDir::SortFlags sort = NoSort) const

Renvoie une liste d'objets ` QFileInfo ` correspondant à tous les fichiers et répertoires du répertoire, classés selon les filtres de nom et d'attribut précédemment définis avec ` setNameFilters()` et ` setFilter()`, et triés selon les indicateurs définis avec ` setSorting()`.

Les spécifications de filtrage par attribut et de tri peuvent être remplacées à l’aide des arguments filters et sort.

Renvoie une liste vide si le répertoire est illisible, n'existe pas ou si aucune entrée ne correspond aux spécifications.

Pour les répertoires volumineux, cette fonction peut entraîner un pic de mémoire car elle crée une instance de ` QFileInfo ` pour chaque entrée du répertoire. Envisagez d’utiliser ` QDirListing ` si l’objectif est de parcourir les éléments un par un.

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

Voir également entryList(), setNameFilters(), setSorting(), setFilter(), isReadable() et exists().

QStringList QDir::entryList(const QStringList &nameFilters, QDir::Filters filters = NoFilter, QDir::SortFlags sort = NoSort) const

Renvoie une liste des noms de tous les fichiers et répertoires présents dans le répertoire, classés selon les filtres de nom et d’attribut précédemment définis à l’aide des fonctions ` setNameFilters()` et ` setFilter()`, et triés selon les indicateurs définis à l’aide de la fonction ` setSorting()`.

Le filtre de nom, le filtre d’attribut de fichier et la spécification de tri peuvent être remplacés à l’aide des arguments nameFilters, filters et sort.

Renvoie une liste vide si le répertoire est illisible, s’il n’existe pas ou si aucune entrée ne correspond aux spécifications.

Pour les répertoires volumineux, cette fonction peut entraîner un pic de mémoire car elle crée une instance de ` QString ` pour chaque entrée du répertoire. Envisagez d’utiliser ` QDirListing ` si l’objectif est de parcourir les éléments un par un.

Voir également entryInfoList(), setNameFilters(), setSorting() et setFilter().

QStringList QDir::entryList(QDir::Filters filters = NoFilter, QDir::SortFlags sort = NoSort) const

Renvoie une liste des noms de tous les fichiers et répertoires présents dans le répertoire, classés selon les filtres de nom et d'attribut précédemment définis à l'aide des fonctions ` setNameFilters()` et ` setFilter()`, et triés selon les indicateurs définis à l'aide de la fonction ` setSorting()`.

Le filtre d’attributs et les spécifications de tri peuvent être remplacés à l’aide des arguments filters et sort.

Renvoie une liste vide si le répertoire est illisible, n'existe pas ou si aucun élément ne correspond aux spécifications.

Remarque : pour lister les liens symboliques pointant vers des fichiers inexistants, il faut passer System au filtre.

Pour les répertoires volumineux, cette fonction peut entraîner un pic de mémoire car elle crée une instance de ` QString ` pour chaque entrée du répertoire. Envisagez d’utiliser ` QDirListing ` si l’objectif est de parcourir les éléments un par un.

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

Voir également entryInfoList(), setNameFilters(), setSorting() et setFilter().

bool QDir::exists(const QString &name) const

Renvoie ` true ` si le fichier nommé ` name ` existe ; sinon, renvoie `false`.

À moins que name ne contienne un chemin d'accès absolu, le nom du fichier est considéré comme relatif au répertoire lui-même ; cette fonction est donc généralement utilisée pour vérifier la présence de fichiers dans un répertoire.

Voir également QFileInfo::exists() et QFile::exists().

bool QDir::exists() const

Renvoie ` true ` si le répertoire existe ; sinon, renvoie ` false`. (Si un fichier portant le même nom est détecté, cette fonction renvoie `false`).

La surcharge de cette fonction qui accepte un argument sert à vérifier la présence de fichiers et de répertoires dans un répertoire.

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

Voir également QFileInfo::exists() et QFile::exists().

QString QDir::filePath(const QString &fileName) const

Renvoie le chemin d'accès d'un fichier dans le répertoire. Ne vérifie pas si le fichier existe réellement dans le répertoire ; voir toutefois exists(). Si l'QDir est relative, le chemin d'accès renvoyé sera également relatif. Les séparateurs multiples redondants ou les répertoires « . » et « .. » dans fileName ne sont pas supprimés (voir cleanPath()).

Voir également dirName(), absoluteFilePath(), isRelative() et canonicalPath().

[since 6.0] std::filesystem::path QDir::filesystemAbsolutePath() const

Renvoie absolutePath() sous la forme std::filesystem::path.

Cette fonction a été introduite dans Qt 6.0.

Voir également absolutePath().

[since 6.0] std::filesystem::path QDir::filesystemCanonicalPath() const

Renvoie canonicalPath() sous la forme std::filesystem::path.

Cette fonction a été introduite dans Qt 6.0.

Voir également canonicalPath().

[since 6.0] std::filesystem::path QDir::filesystemPath() const

Renvoie path() sous la forme std::filesystem::path.

Cette fonction a été introduite dans Qt 6.0.

Voir également path().

QDir::Filters QDir::filter() const

Renvoie la valeur définie par la fonction setFilter()

Voir aussi setFilter().

[static] QString QDir::fromNativeSeparators(const QString &pathName)

Renvoie l'pathName ion en utilisant « / » comme séparateur de répertoires. Sous Windows, par exemple, fromNativeSeparators("c:\\winnt\\system32") renvoie « c:/winnt/system32 ».

La chaîne renvoyée peut être identique à l'argument sur certains systèmes d'exploitation, par exemple sous Unix.

Voir également toNativeSeparators() et separator().

[static] QDir QDir::home()

Renvoie le répertoire personnel de l'utilisateur.

Le répertoire est construit à partir du chemin absolu du répertoire personnel, ce qui garantit que sa fonction path() sera identique à celle de absolutePath().

Voir homePath() pour plus de détails.

Voir également les fonctions drives(), current(), root() et temp().

[static] QString QDir::homePath()

Renvoie le chemin absolu du répertoire personnel de l'utilisateur.

Sous Windows, cette fonction renvoie le répertoire du profil de l'utilisateur actuel. En général, il s'agit de :

C:/Users/Username

Utilisez la fonction ` toNativeSeparators()` pour convertir les séparateurs en ceux adaptés au système d'exploitation sous-jacent.

Si le répertoire du profil de l'utilisateur actuel n'existe pas ou ne peut être récupéré, les alternatives suivantes seront vérifiées (dans l'ordre indiqué) jusqu'à ce qu'un chemin existant et disponible soit trouvé :

  1. Le chemin spécifié par la variable d'environnement ` USERPROFILE `.
  2. Le chemin formé en concaténant les variables d’environnement ` HOMEDRIVE ` et ` HOMEPATH `.
  3. Le chemin spécifié par la variable d'environnement ` HOME `.
  4. Le chemin renvoyé par la fonction rootPath() (qui utilise la variable d'environnement SystemDrive )
  5. Le répertoire C:/.

Sous les systèmes d'exploitation autres que Windows, la variable d'environnement HOME est utilisée si elle existe ; sinon, c'est le chemin renvoyé par la fonction rootPath().

Voir également home(), currentPath(), rootPath() et tempPath().

bool QDir::isAbsolute() const

Renvoie « true » si le chemin d'accès au répertoire est absolu ; sinon, renvoie « false ». Voir isAbsolutePath().

Remarque : les chemins commençant par deux points (:) sont toujours considérés comme absolus, car ils désignent un QResource.

Voir également isRelative(), makeAbsolute() et cleanPath().

[static] bool QDir::isAbsolutePath(const QString &path)

Renvoie « true » si « path » est un chemin absolu ; renvoie « false » s'il s'agit d'un chemin relatif.

Remarque : les chemins commençant par deux points (:) sont toujours considérés comme absolus, car ils désignent un QResource.

Voir également isAbsolute(), isRelativePath(), makeAbsolute(), cleanPath() et QResource.

bool QDir::isEmpty(QDir::Filters filters = Filters(AllEntries | NoDotAndDotDot)) const

Indique si le répertoire est vide.

Équivalent à ` count() == 0 ` avec les filtres ` QDir::AllEntries | QDir::NoDotAndDotDot`, mais plus rapide car il vérifie simplement si le répertoire contient au moins une entrée.

Remarque : à moins de définir les indicateurs de ` filters ` pour inclure ` QDir::NoDotAndDotDot ` (comme le fait la valeur par défaut), aucun répertoire n'est considéré comme vide.

Voir également count(), entryList() et setFilter().

bool QDir::isReadable() const

Renvoie « true » si le répertoire est accessible en lecture et qu’il est possible d’ouvrir les fichiers par leur nom ; sinon, renvoie « false ».

Avertissement : une valeur fausse renvoyée par cette fonction ne garantit pas que les fichiers du répertoire ne soient pas accessibles.

Voir aussi QFileInfo::isReadable().

bool QDir::isRelative() const

Renvoie « true » si le chemin d'accès au répertoire est relatif ; sinon, renvoie « false ». (Sous Unix, un chemin est relatif s'il ne commence pas par un « / »).

Remarque : les chemins commençant par deux points (:) sont toujours considérés comme absolus, car ils désignent un QResource.

Voir également makeAbsolute(), isAbsolute(), isAbsolutePath() et cleanPath().

[static] bool QDir::isRelativePath(const QString &path)

Renvoie « true » si « path » est un chemin relatif ; renvoie « false » s'il s'agit d'un chemin absolu.

Remarque : les chemins commençant par deux points (:) sont toujours considérés comme absolus, car ils désignent un QResource.

Voir également isRelative(), isAbsolutePath() et makeAbsolute().

bool QDir::isRoot() const

Renvoie « true » si le répertoire est le répertoire racine ; sinon, renvoie « false ».

Remarque : si le répertoire est un lien symbolique vers le répertoire racine, cette fonction renvoie « false ». Si vous souhaitez vérifier cela, utilisez « canonicalPath() », par exemple :

QDir dir("/tmp/root_link");
dir = dir.canonicalPath();
if (dir.isRoot())
    qWarning("It is a root link");

Voir également root() et rootPath().

[static constexpr noexcept] QChar QDir::listSeparator()

Renvoie le séparateur natif des chemins d'accès : « : » sous Unix et « ; » sous Windows.

Voir aussi separator().

bool QDir::makeAbsolute()

Convertit le chemin d'accès au répertoire en chemin absolu. Si celui-ci est déjà absolu, aucune action n'est effectuée. Renvoie « true » si la conversion a réussi ; sinon, renvoie « false ».

Voir également isAbsolute(), isAbsolutePath(), isRelative() et cleanPath().

[static] bool QDir::match(const QString &filter, const QString &fileName)

Renvoie « true » si l’ fileName correspond au motif générique (glob) « filter » ; sinon, renvoie « false ». L’ filter peut contenir plusieurs motifs séparés par des espaces ou des points-virgules. La correspondance ne tient pas compte de la casse.

Voir également QRegularExpression::fromWildcard(), entryList() et entryInfoList().

[static] bool QDir::match(const QStringList &filters, const QString &fileName)

Renvoie « true » si l'fileName correspond à l'un des motifs génériques (glob) de la liste « filters » ; sinon, renvoie « false ». La correspondance ne tient pas compte de la casse.

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

Voir également QRegularExpression::fromWildcard(), entryList() et entryInfoList().

bool QDir::mkdir(const QString &dirName, std::optional<QFileDevice::Permissions> permissions = std::nullopt) const

Crée un sous-répertoire nommé « dirName » avec le contenu spécifié dans « permissions ».

Si permissions correspond à std::nullopt (valeur par défaut), cette fonction définit les droits d'accès par défaut.

Renvoie true en cas de succès ; renvoie false si l'opération a échoué ou si dirName existait déjà.

Si dirName existait déjà, cette méthode ne modifie pas ses permissions.

Sur les systèmes POSIX, les fichiers permissions sont modifiés par le umask (masque de création de fichier) du processus en cours, ce qui signifie que certains bits de permission peuvent être désactivés.

Sous Windows, par défaut, un nouveau répertoire hérite des autorisations de son répertoire parent. Les fichiers « permissions » sont émulés à l’aide d’ACL. Ces ACL peuvent ne pas respecter l’ordre canonique lorsque le groupe se voit accorder moins d’autorisations que les autres. Les fichiers et répertoires dotés de telles autorisations génèrent des avertissements lorsque l’onglet « Sécurité » de la boîte de dialogue « Propriétés » est ouvert. L’octroi au groupe de toutes les autorisations accordées aux autres permet d’éviter ces avertissements.

Remarque : Qt 6.10 a ajouté le paramètre ` permissions `. Pour retrouver l’ancien comportement (utilisant les autorisations par défaut spécifiques à la plateforme) de ` mkdir(const QString &) `, définissez ` permissions ` sur ` std::nullopt ` (valeur par défaut). Cette nouvelle méthode remplace également de manière transparente la surcharge de ` mkdir(const QString &, QFile::Permissions) `.

Voir également ` rmdir()`, ` mkpath()` et ` rmpath()`.

bool QDir::mkpath(const QString &dirPath, std::optional<QFileDevice::Permissions> permissions = std::nullopt) const

Crée un répertoire nommé « dirPath ».

Si dirPath n'existe pas encore, cette méthode le créera – ainsi que tous les répertoires parents inexistants – avec les droits d'accès suivants : permissions.

Si dirPath existait déjà, cette méthode ne modifiera pas ses droits d’accès ; il en va de même pour tous les répertoires parents déjà existants.

Si permissions est std::nullopt (valeur par défaut), cette fonction définira les droits par défaut.

Renvoie true en cas de succès ou si dirPath existait déjà ; sinon, renvoie false.

Sur les systèmes POSIX, les fichiers permissions sont modifiés par le umask (masque de création de fichier) du processus en cours, ce qui signifie que certains bits de permission peuvent être désactivés.

Sous Windows, par défaut, un nouveau répertoire hérite des autorisations de son répertoire parent. Les permissions sont émulées à l’aide d’ACL. Ces ACL peuvent ne pas respecter l’ordre canonique lorsque le groupe se voit accorder moins d’autorisations que les autres. Les fichiers et répertoires dotés de telles autorisations génèrent des avertissements lorsque l’onglet « Sécurité » de la boîte de dialogue « Propriétés » est ouvert. Accorder au groupe toutes les autorisations accordées aux autres permet d’éviter ces avertissements.

Remarque : Qt 6.10 a ajouté le paramètre « permissions ». Pour retrouver l’ancien comportement (utilisant les autorisations par défaut spécifiques à la plate-forme) de « mkpath(const QString &) », définissez « permissions » sur « std::nullopt » (valeur par défaut).

Voir également rmpath(), mkdir() et rmdir().

QStringList QDir::nameFilters() const

Renvoie la liste de chaînes définie par la fonction setNameFilters()

Voir également setNameFilters().

QString QDir::path() const

Renvoie le chemin d'accès. Celui-ci peut contenir des liens symboliques, mais ne contient jamais de « . », « .. » redondants ni de séparateurs multiples.

Le chemin renvoyé peut être absolu ou relatif (voir setPath()).

Voir également setPath(), absolutePath(), exists(), cleanPath(), dirName(), absoluteFilePath(), toNativeSeparators() et makeAbsolute().

void QDir::refresh() const

Actualise les informations du répertoire.

QString QDir::relativeFilePath(const QString &fileName) const

Renvoie le chemin d'accès à fileName par rapport au répertoire.

QDir dir("/home/bob");
QString s;

s = dir.relativeFilePath("images/file.jpg");     // s is "images/file.jpg"
s = dir.relativeFilePath("/home/mary/file.txt"); // s is "../mary/file.txt"

Voir également absoluteFilePath(), filePath() et canonicalPath().

bool QDir::remove(const QString &fileName)

Supprime le fichier « fileName ».

Renvoie true si le fichier a été supprimé avec succès ; sinon, renvoie false.

bool QDir::removeRecursively()

Supprime le répertoire, y compris tout son contenu.

Renvoie « true » en cas de succès, sinon « false ».

Si un fichier ou un répertoire ne peut pas être supprimé, la méthode removeRecursively() continue et tente de supprimer autant de fichiers et de sous-répertoires que possible, puis renvoie « false ».

Si le répertoire a déjà été supprimé, la méthode renvoie « true » (résultat attendu déjà atteint).

Remarque : cette fonction est destinée à supprimer un petit répertoire interne à l’application (tel qu’un répertoire temporaire), mais pas les répertoires visibles par l’utilisateur. Pour les opérations visibles par l’utilisateur, il est plutôt recommandé de signaler les erreurs de manière plus précise à l’utilisateur, de proposer des solutions en cas d’erreur, d’afficher la progression pendant la suppression car celle-ci peut prendre plusieurs minutes, etc.

bool QDir::rename(const QString &oldName, const QString &newName)

Renomme un fichier ou un répertoire de oldName en newName et renvoie `true` en cas de succès ; sinon, renvoie ` false`.

Sur la plupart des systèmes de fichiers, la fonction `rename()` échoue uniquement si ` oldName ` n’existe pas ou si un fichier portant le nouveau nom existe déjà. Cependant, il existe d’autres raisons pour lesquelles `rename()` peut échouer. Par exemple, sur au moins un système de fichiers, `rename()` échoue si ` newName ` pointe vers un fichier ouvert.

Si oldName est un fichier (et non un répertoire) qui ne peut pas être renommé immédiatement, Qt tentera de copier oldName vers newName et de supprimer oldName.

Voir également QFile::rename().

bool QDir::rmdir(const QString &dirName) const

Supprime le répertoire indiqué par ` dirName`.

Le répertoire doit être vide pour que la fonction rmdir() aboutisse.

Renvoie true en cas de succès ; sinon, renvoie false.

Voir également mkdir().

bool QDir::rmpath(const QString &dirPath) const

Supprime le chemin d'accès au répertoire dirPath.

La fonction supprime tous les répertoires parents de dirPath, à condition qu'ils soient vides. C'est l'inverse de la fonction mkpath(dirPath).

Renvoie true en cas de succès ; sinon, renvoie false.

Voir également mkpath().

[static] QDir QDir::root()

Renvoie le répertoire racine.

Le répertoire est construit à partir du chemin absolu du répertoire racine, ce qui garantit que sa fonction ` path()` sera identique à sa fonction ` absolutePath()`.

Voir rootPath() pour plus de détails.

Voir également les fonctions drives(), current(), home() et temp().

[static] QString QDir::rootPath()

Renvoie le chemin absolu du répertoire racine.

Sous les systèmes d'exploitation Unix, cette fonction renvoie « / ». Sous les systèmes de fichiers Windows, elle renvoie généralement « c:/ ».

Voir également root(), drives(), currentPath(), homePath() et tempPath().

[static] QStringList QDir::searchPaths(const QString &prefix)

Renvoie les chemins de recherche pour prefix.

Voir également setSearchPaths() et addSearchPath().

[static] QChar QDir::separator()

Renvoie le séparateur de répertoire natif : « / » sous Unix et « \ » sous Windows.

Vous n'avez pas besoin d'utiliser cette fonction pour construire des chemins d'accès aux fichiers. Si vous utilisez toujours « / », Qt convertira vos chemins d'accès pour qu'ils soient conformes au système d'exploitation sous-jacent. Si vous souhaitez afficher les chemins d'accès à l'utilisateur en utilisant le séparateur de son système d'exploitation, utilisez toNativeSeparators().

Voir également listSeparator().

[static] bool QDir::setCurrent(const QString &path)

Définit le répertoire de travail actuel de l'application sur path. Renvoie true si le changement de répertoire a réussi ; sinon, renvoie false.

QString absolute = "/local/bin";
QString relative = "local/bin";
QFileInfo absFile(absolute);
QFileInfo relFile(relative);

QDir::setCurrent(QDir::rootPath());
// absFile and relFile now point to the same file

QDir::setCurrent("/tmp");
// absFile now points to "/local/bin",
// while relFile points to "/tmp/local/bin"

Voir également current(), currentPath(), home(), root() et temp().

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

Définit le filtre utilisé par les fonctions entryList() et entryInfoList() sur filters. Ce filtre permet de spécifier le type de fichiers qui doivent être renvoyés par les fonctions entryList() et entryInfoList(). Voir QDir::Filter.

Voir également filter() et setNameFilters().

void QDir::setNameFilters(const QStringList &nameFilters)

Définit les filtres de nom utilisés par entryList() et entryInfoList() sur la liste de filtres spécifiée par nameFilters.

Chaque filtre de nom est un filtre à caractères génériques (globbing) qui prend en charge les caractères génériques des fonctions * et ?. Voir QRegularExpression::fromWildcard().

Par exemple, le code suivant définit trois filtres de nom sur une liste de fichiers ( QDir ) afin de garantir que seuls les fichiers dont l’extension est couramment utilisée pour les fichiers source C++ soient répertoriés :

    QStringList filters;
    filters << "*.cpp" << "*.cxx" << "*.cc";
    dir.setNameFilters(filters);

Voir également nameFilters() et setFilter().

void QDir::setPath(const QString &path)

Définit le chemin d'accès au répertoire path. Le chemin est débarrassé des caractères redondants « . », « .. » et des séparateurs multiples. Aucune vérification n'est effectuée pour s'assurer qu'un répertoire correspondant à ce chemin existe réellement ; vous pouvez toutefois le vérifier vous-même à l'aide de la fonction exists().

Le chemin peut être absolu ou relatif. Les chemins absolus commencent par le séparateur de répertoire « / » (éventuellement précédé d'une spécification de lecteur sous Windows). Les noms de fichiers relatifs commencent par un nom de répertoire ou un nom de fichier et spécifient un chemin relatif au répertoire courant. Un exemple de chemin absolu est la chaîne « /tmp/quartz », tandis qu’un chemin relatif pourrait ressembler à « src/fatlib ».

Voir également path(), absolutePath(), exists(), cleanPath(), dirName(), absoluteFilePath(), isRelative() et makeAbsolute().

[since 6.0] void QDir::setPath(const std::filesystem::path &path)

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

Cette fonction a été introduite dans Qt 6.0.

[static] void QDir::setSearchPaths(const QString &prefix, const QStringList &searchPaths)

Définit ou remplace les chemins de recherche de Qt pour les noms de fichiers comportant le préfixe « prefix » par « searchPaths ».

Pour spécifier un préfixe pour un nom de fichier, faites précéder le préfixe d’un seul deux-points (par exemple, « images:undo.png », « xmldocs:books.xml »). prefix ne peut contenir que des lettres ou des chiffres (par exemple, il ne peut contenir ni deux-points, ni barre oblique).

Qt utilise ce chemin de recherche pour localiser les fichiers comportant un préfixe connu. Les entrées du chemin de recherche sont vérifiées dans l'ordre, en commençant par la première.

QDir::setSearchPaths("icons", QStringList(QDir::homePath() + "/images"));
QDir::setSearchPaths("docs", QStringList(":/embeddedDocuments"));
//...
QPixmap pixmap("icons:undo.png"); // will look for undo.png in QDir::homePath() + "/images"
QFile file("docs:design.odf"); // will look in the :/embeddedDocuments resource path

Le préfixe du nom de fichier doit comporter au moins 2 caractères afin d’éviter tout conflit avec les lettres de lecteur Windows.

Les chemins de recherche peuvent contenir des chemins vers le système de ressources Qt.

Voir également searchPaths().

void QDir::setSorting(QDir::SortFlags sort)

Définit l'ordre de tri utilisé par les fonctions entryList() et entryInfoList().

L'sort est spécifiée en combinant par opération OU les valeurs de l'énumération QDir::SortFlag.

Voir également sorting() et SortFlag.

QDir::SortFlags QDir::sorting() const

Renvoie la valeur définie par la fonction setSorting()

Voir également setSorting() et SortFlag.

[noexcept] void QDir::swap(QDir &other)

Remplace cette instance de QDir par other. Cette opération est très rapide et ne rencontre jamais d'échec.

[static] QDir QDir::temp()

Renvoie le répertoire temporaire du système.

Ce répertoire est construit à partir du chemin canonique absolu du répertoire temporaire, ce qui garantit que sa fonction ` path()` donnera le même résultat que sa fonction ` absolutePath()`.

Voir tempPath() pour plus de détails.

Voir également les fonctions drives(), current(), home() et root().

[static] QString QDir::tempPath()

Renvoie le chemin canonique absolu du répertoire temporaire du système.

Sur les systèmes Unix/Linux, il s'agit du chemin indiqué dans la variable d'environnement ` TMPDIR ` ou ` /tmp ` si ` TMPDIR ` n'est pas défini. Sous Windows, il s'agit généralement du chemin indiqué dans la variable d'environnement ` TEMP ` ou ` TMP `. Le chemin renvoyé par cette méthode ne se termine pas par un séparateur de répertoire, sauf s'il s'agit du répertoire racine (d'un lecteur).

Voir également temp(), currentPath(), homePath() et rootPath().

[static] QString QDir::toNativeSeparators(const QString &pathName)

Renvoie pathName, les séparateurs « / » ayant été convertis en séparateurs adaptés au système d'exploitation sous-jacent.

Sous Windows, toNativeSeparators("c:/winnt/system32") renvoie "c:\winnt\system32 ".

La chaîne renvoyée peut être identique à l'argument sur certains systèmes d'exploitation, par exemple sous Unix.

Voir également fromNativeSeparators() et separator().

[noexcept] QDir &QDir::operator=(QDir &&other)

Cette opération attribue l'other à cette instance QDir.

QDir &QDir::operator=(const QDir &dir)

Crée une copie de l'objet « dir » et l'attribue à cet objet « QDir ».

QString QDir::operator[](qsizetype pos) const

Renvoie le nom de fichier situé à la position pos dans la liste des noms de fichiers. Équivalent à entryList().at(index). pos doit être une position d'index valide dans la liste (c'est-à-dire 0 <= pos < count()).

Remarque : dans les versions de Qt antérieures à la version 6.5, pos était un int, et non un qsizetype.

Voir également count() et entryList().

Éléments connexes pour les non-membres

[noexcept] bool operator!=(const QDir &lhs, const QDir &rhs)

Renvoie « true » si le répertoire lhs et le répertoire rhs ont des chemins d'accès différents ou des paramètres de tri ou de filtrage différents ; sinon, renvoie « false ».

Exemple :

// Le répertoire actuel est « /usr/local »
QDir d1("/usr/local/bin");
d1.setFilter(QDir::Executable);
QDir d2("bin");
if (d1 != d2)
    qDebug("They differ");

[noexcept] bool operator==(const QDir &lhs, const QDir &rhs)

Renvoie « true » si le répertoire lhs et le répertoire rhs ont le même chemin d'accès et que leurs paramètres de tri et de filtrage sont identiques ; sinon, renvoie « false ».

Exemple :

// Le répertoire actuel est « /usr/local »
QDir d1("/usr/local/bin");
QDir d2("bin");
if (d1== d2)
    qDebug("They're the same");

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