Sur cette page

QFileInfo Class

La classe QFileInfo fournit une API indépendante du système d'exploitation permettant de récupérer des informations sur les entrées du système de fichiers. En savoir plus...

En-tête : #include <QFileInfo>
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 QFileInfo

CatégorieTypes comparables
égalitéQFileInfo

Fonctions publiques

QFileInfo()
QFileInfo(const QFileDevice &file)
QFileInfo(const QString &path)
(since 6.0) QFileInfo(const std::filesystem::path &file)
QFileInfo(const QDir &dir, const QString &path)
(since 6.0) QFileInfo(const QDir &dir, const std::filesystem::path &path)
QFileInfo(const QFileInfo &fileinfo)
(since 6.12) QFileInfo(QFileInfo &&other)
~QFileInfo()
QDir absoluteDir() const
QString absoluteFilePath() const
QString absolutePath() const
QString baseName() const
QDateTime birthTime() const
(since 6.6) QDateTime birthTime(const QTimeZone &tz) const
QString bundleName() const
bool caching() const
QString canonicalFilePath() const
QString canonicalPath() const
QString completeBaseName() const
QString completeSuffix() const
QDir dir() const
bool exists() const
QString fileName() const
QString filePath() const
QDateTime fileTime(QFileDevice::FileTime time) const
(since 6.6) QDateTime fileTime(QFileDevice::FileTime time, const QTimeZone &tz) const
(since 6.0) std::filesystem::path filesystemAbsoluteFilePath() const
(since 6.0) std::filesystem::path filesystemAbsolutePath() const
(since 6.0) std::filesystem::path filesystemCanonicalFilePath() const
(since 6.0) std::filesystem::path filesystemCanonicalPath() const
(since 6.0) std::filesystem::path filesystemFilePath() const
(since 6.2) std::filesystem::path filesystemJunctionTarget() const
(since 6.0) std::filesystem::path filesystemPath() const
(since 6.6) std::filesystem::path filesystemReadSymLink() const
(since 6.0) std::filesystem::path filesystemSymLinkTarget() const
QString group() const
uint groupId() const
bool isAbsolute() const
(since 6.4) bool isAlias() const
bool isBundle() const
bool isDir() const
bool isExecutable() const
bool isFile() const
bool isHidden() const
bool isJunction() const
bool isNativePath() const
(since 6.10) bool isOther() const
bool isReadable() const
bool isRelative() const
bool isRoot() const
bool isShortcut() const
bool isSymLink() const
bool isSymbolicLink() const
bool isWritable() const
(since 6.2) QString junctionTarget() const
QDateTime lastModified() const
(since 6.6) QDateTime lastModified(const QTimeZone &tz) const
QDateTime lastRead() const
(since 6.6) QDateTime lastRead(const QTimeZone &tz) const
bool makeAbsolute()
QDateTime metadataChangeTime() const
(since 6.6) QDateTime metadataChangeTime(const QTimeZone &tz) const
QString owner() const
uint ownerId() const
QString path() const
bool permission(QFileDevice::Permissions permissions) const
QFileDevice::Permissions permissions() const
(since 6.6) QString readSymLink() const
void refresh()
void setCaching(bool enable)
void setFile(const QString &path)
(since 6.0) void setFile(const std::filesystem::path &path)
void setFile(const QFileDevice &file)
void setFile(const QDir &dir, const QString &path)
qint64 size() const
(since 6.0) void stat()
QString suffix() const
void swap(QFileInfo &other)
QString symLinkTarget() const
QFileInfo &operator=(QFileInfo &&other)
QFileInfo &operator=(const QFileInfo &fileinfo)

Membres publics statiques

bool exists(const QString &path)
QFileInfoList
bool operator!=(const QFileInfo &lhs, const QFileInfo &rhs)
bool operator==(const QFileInfo &lhs, const QFileInfo &rhs)

Macros

Description détaillée

QFileInfo fournit des informations sur une entrée du système de fichiers, telles que son nom, son chemin d’accès, ses droits d’accès et s’il s’agit d’un fichier ordinaire, d’un répertoire ou d’un lien symbolique. La taille de l’entrée ainsi que les dates et heures de dernière modification et de dernière lecture sont également disponibles. QFileInfo peut également être utilisé pour obtenir des informations sur une ressource Qt.

Un objet QFileInfo peut pointer vers une entrée du système de fichiers à l'aide d'un chemin absolu ou relatif :

  • Sous Unix, les chemins absolus commencent par le séparateur de répertoire '/'. Sous Windows, les chemins absolus commencent par une spécification de lecteur (par exemple, D:/).
  • Les chemins relatifs commencent par un nom de répertoire ou un nom de fichier ordinaire et spécifient le chemin d'une entrée du système de fichiers par rapport au répertoire de travail actuel.

Un exemple de chemin absolu est la chaîne "/tmp/quartz". Un chemin relatif peut se présenter sous la forme "src/fatlib". Vous pouvez utiliser la fonction isRelative() pour vérifier si un objet QFileInfo utilise un chemin relatif ou absolu. Vous pouvez appeler la fonction makeAbsolute() pour convertir le chemin relatif d’un objet QFileInfo en chemin 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 à l’entrée du système de fichiers sur lequel porte l’objet `QFileInfo` est défini dans le constructeur ou ultérieurement à l’aide de la fonction ` setFile()`. Utilisez la fonction ` exists()` pour vérifier si l’entrée existe réellement et la fonction ` size()` pour obtenir sa taille.

Le type de l'entrée du système de fichiers est obtenu à l'aide des fonctions ` isFile()`, ` isDir()` et ` isSymLink()`. La fonction ` symLinkTarget()` fournit le chemin absolu de la cible vers laquelle pointe le lien symbolique.

Les éléments du chemin d'accès de l'entrée du système de fichiers peuvent être extraits à l'aide de ` path()` et ` fileName()`. Les parties de ` fileName()` peuvent être extraites à l'aide de ` baseName()`, ` suffix()` ou ` completeSuffix()`. Les objets `QFileInfo` faisant référence à des répertoires créés par des classes Qt ne comportent pas de séparateur de répertoire final '/'. Si vous souhaitez utiliser des séparateurs finaux dans vos propres objets d'informations de fichier, il suffit d'en ajouter un au chemin d'accès de l'entrée fourni aux constructeurs ou à la fonction setFile().

Les informations relatives à la date et à l'heure sont renvoyées par birthTime(), fileTime(), lastModified(), lastRead() et metadataChangeTime(). Les informations concernant les droits d'accès peuvent être obtenues avec isReadable(), isWritable() et isExecutable(). Les informations relatives à la propriété peuvent être obtenues via owner(), ownerId(), group() et groupId(). Vous pouvez également examiner les autorisations et la propriété en une seule instruction à l'aide de la fonction permission().

Sous Unix (y compris macOS et iOS), les fonctions d’accès aux propriétés de cette classe renvoient les propriétés telles que les horodatages et la taille de la cible, et non celles du lien symbolique, car Unix gère les liens symboliques de manière transparente. Ouvrir un lien symbolique à l’aide de ` QFile ` revient en fait à ouvrir la cible du lien. Par exemple :

#ifdef Q_OS_UNIX

QFileInfo info1("/home/bob/bin/untabify");
info1.isSymLink();          // returns true
info1.absoluteFilePath();   // returns "/home/bob/bin/untabify"
info1.size();               // returns 56201
info1.symLinkTarget();      // returns "/opt/pretty++/bin/untabify"

QFileInfo info2(info1.symLinkTarget());
info2.isSymLink();          // returns false
info2.absoluteFilePath();   // returns "/opt/pretty++/bin/untabify"
info2.size();               // returns 56201

#endif

Sous Windows, les raccourcis (fichiers `.lnk `) sont actuellement traités comme des liens symboliques. Comme sur les systèmes Unix, les fonctions d’accès aux propriétés renvoient la taille de la cible, et non celle du fichier ` .lnk ` lui-même. Ce comportement est déprécié et sera probablement supprimé dans une future version de Qt, après quoi les fichiers ` .lnk ` seront traités comme des fichiers normaux.

#ifdef Q_OS_WIN

QFileInfo info1("C:\\Users\\Bob\\untabify.lnk");
info1.isSymLink();          // returns true
info1.absoluteFilePath();   // returns "C:/Users/Bob/untabify.lnk"
info1.size();               // returns 63942
info1.symLinkTarget();      // returns "C:/Pretty++/untabify"

QFileInfo info2(info1.symLinkTarget());
info2.isSymLink();          // returns false
info2.absoluteFilePath();   // returns "C:/Pretty++/untabify"
info2.size();               // returns 63942

#endif

Autorisations NTFS

Sur les systèmes de fichiers NTFS, la vérification de la propriété et des permissions est désactivée par défaut pour des raisons de performances. Pour l’activer, ajoutez la ligne suivante :

extern Q_CORE_EXPORT int qt_ntfs_permission_lookup;

La vérification des droits est alors activée ou désactivée en augmentant ou en diminuant la valeur de ` qt_ntfs_permission_lookup ` de 1.

qt_ntfs_permission_lookup++; // turn checking on
qt_ntfs_permission_lookup--; // turn it off again

Remarque : comme il s’agit d’une variable globale non atomique, il n’est sûr d’incrémenter ou de décrémenter ` qt_ntfs_permission_lookup ` qu’avant le démarrage de tout thread autre que le thread principal ou après la fin de tous les threads autres que le thread principal.

Remarque : à partir de Qt 6.6, la variable ` qt_ntfs_permission_lookup ` est obsolète. Veuillez utiliser les alternatives suivantes.

La manière la plus sûre et la plus simple de gérer les vérifications d'autorisations consiste à utiliser la classe RAII ` QNtfsPermissionCheckGuard`.

void complexFunction()
{
    QNtfsPermissionCheckGuard permissionGuard;  // check is enabled

    // do complex things here that need permission check enabled

}   // as the guard goes out of scope the check is disabled

Si vous avez besoin d'un contrôle plus fin, il est possible de gérer les autorisations à l'aide des fonctions suivantes :

qAreNtfsPermissionChecksEnabled();   // vérifier l'état
qEnableNtfsPermissionChecks();       // turn checking on
qDisableNtfsPermissionChecks();      // turn it off again

Considérations relatives aux performances

Certaines fonctions de QFileInfo doivent interroger le système de fichiers, mais pour des raisons de performances, d’autres ne portent que sur la chaîne de caractères représentant le chemin d’accès. Par exemple : pour renvoyer le chemin absolu d’une entrée relative, la fonction absolutePath() doit interroger le système de fichiers. La fonction path(), en revanche, peut agir directement sur le nom de fichier, ce qui la rend plus rapide.

QFileInfo met également en cache des informations concernant l’entrée du système de fichiers à laquelle il fait référence. Comme le système de fichiers peut être modifié par d’autres utilisateurs ou programmes, voire par d’autres parties du même programme, il existe une fonction qui actualise les informations stockées dans QFileInfo, à savoir ` refresh()`. Pour désactiver la mise en cache d'un objet `QFileInfo` (c'est-à-dire pour le forcer à interroger le système de fichiers sous-jacent à chaque fois que vous lui demandez des informations), appelez ` setCaching(false)`.

La récupération d'informations depuis le système de fichiers s'effectue généralement en appelant des fonctions système (potentiellement) coûteuses ; par conséquent, QFileInfo (selon l'implémentation) peut ne pas récupérer toutes les informations du système de fichiers lors de sa création. Pour vous assurer que toutes les informations sont lues immédiatement depuis le système de fichiers, utilisez la fonction membre ` stat()`.

birthTime(), fileTime(), lastModified(), lastRead() et metadataChangeTime() renvoient par défaut l’heure locale. Étant donné que l’API native du système de fichiers utilise généralement l’heure UTC, une conversion est nécessaire. Si vous n’avez pas réellement besoin de l’heure locale, vous pouvez éviter cette conversion en demandant directement l’heure à QTimeZone::UTC.

Problèmes spécifiques à certaines plateformes

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

Voir également QDir et QFile.

Documentation sur les fonctions membres

QFileInfo::QFileInfo()

Crée un objet `QFileInfo` vide qui ne fait référence à aucune entrée du système de fichiers.

Voir aussi setFile().

[explicit] QFileInfo::QFileInfo(const QFileDevice &file)

Crée un nouvel objet QFileInfo contenant des informations sur l'file du fichier.

Si l'file e comporte un chemin relatif, l'objet QFileInfo comportera également un chemin relatif.

Voir aussi ` isRelative()` .

[explicit] QFileInfo::QFileInfo(const QString &path)

Crée un objet QFileInfo contenant des informations sur une entrée du système de fichiers située à l'adresse path, qui peut être absolue ou relative.

Si path est relative, l'objet QFileInfo possédera également un chemin relatif.

Voir également setFile(), isRelative(), QDir::setCurrent() et QDir::isRelativePath().

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

Crée un nouvel objet `QFileInfo` contenant des informations sur le fichier ` file` spécifié.

Cette fonction a été introduite dans Qt 6.0.

Voir également setFile(), isRelative(), QDir::setCurrent() et QDir::isRelativePath().

[explicit] QFileInfo::QFileInfo(const QDir &dir, const QString &path)

Crée un nouvel objet QFileInfo contenant des informations sur l'entrée du système de fichiers indiquée par ` path `, relative au répertoire ` dir`.

Si dir possède un chemin relatif, l’objet QFileInfo aura également un chemin relatif.

Si ` path ` est absolu, le répertoire spécifié par ` dir ` sera ignoré.

Voir également isRelative().

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

Crée un nouvel objet QFileInfo fournissant des informations sur l'entrée du système de fichiers située à l'adresse path, relative au répertoire dir.

Si dir possède un chemin relatif, l’objet QFileInfo aura également un chemin relatif.

Si path est absolu, le répertoire spécifié par dir sera ignoré.

Cette fonction a été introduite dans Qt 6.0.

QFileInfo::QFileInfo(const QFileInfo &fileinfo)

Crée un nouvel objet `QFileInfo` qui est une copie de l'objet ` fileinfo` fourni.

[constexpr noexcept default, since 6.12] QFileInfo::QFileInfo(QFileInfo &&other)

La fonction `move` construit un nouvel objet `QFileInfo` à partir de ` other`.

Remarque : l'objet d'origine other est placé dans un état partiellement formé, dans lequel les seules opérations valides sont la destruction et l'affectation d'une nouvelle valeur.

Cette fonction a été introduite dans Qt 6.12.

[noexcept] QFileInfo::~QFileInfo()

Supprime l'QFileInfo e et libère ses ressources.

QDir QFileInfo::absoluteDir() const

Renvoie un objet ` QDir ` représentant le chemin absolu du répertoire parent de l'entrée du système de fichiers à laquelle cette ` QFileInfo ` fait référence.

// Étant donné un répertoire de travail actuel « /home/user/Documents/memos/ »
QFileInfo info1(u"relativeFile"_s);
qDebug() << info1.absolutePath(); // "/home/user/Documents/memos/"
qDebug() << info1.baseName(); // "relativeFile"
qDebug() << info1.absoluteDir(); // QDir(u"/home/user/Documents/memos"_s)
qDebug() << info1.absoluteDir().path(); // "/home/user/Documents/memos"

// Un objet QFileInfo pour un répertoire
QFileInfo info2(u"/home/user/Documents/memos"_s);
qDebug() << info2.absolutePath(); // "/home/user/Documents"
qDebug() << info2.baseName(); // "memos"
qDebug() << info2.absoluteDir(); // QDir(u"/home/user/Documents"_s)
qDebug() << info2.absoluteDir().path(); // "/home/user/Documents"

Voir également dir(), filePath(), fileName() et isRelative().

QString QFileInfo::absoluteFilePath() const

Renvoie le chemin d'accès complet absolu de l'entrée du système de fichiers à laquelle cette méthode ` QFileInfo ` fait référence, y compris le nom de l'entrée.

Sous Unix, les chemins d'accès absolus commencent par le séparateur de répertoire '/'. Sous Windows, les chemins d'accès absolus commencent par une spécification de lecteur (par exemple, D:/).

Sous Windows, les chemins d'accès des partages réseau qui ne sont pas mappés à une lettre de lecteur commencent par //sharename/.

QFileInfo mettra les lettres de lecteur en majuscules. Notez que QDir ne le fait pas. L'extrait de code ci-dessous l'illustre.

    QFileInfo fi("c:/temp/foo");
    qDebug() << fi.absoluteFilePath(); // "C:/temp/foo"

Cette fonction renvoie le même résultat que ` filePath()`, sauf si ` isRelative()` est vrai. Contrairement à ` canonicalFilePath()`, les liens symboliques ou les éléments redondants « . » ou « .. » ne sont pas nécessairement supprimés.

Avertissement : si filePath() est vide, le comportement de cette fonction est indéfini.

Voir également filePath(), canonicalFilePath() et isRelative().

QString QFileInfo::absolutePath() const

Renvoie le chemin absolu de l'entrée du système de fichiers à laquelle cette QFileInfo fait référence, sans le nom de l'entrée.

Sous Unix, les chemins absolus commencent par le séparateur de répertoire '/'. Sous Windows, les chemins absolus commencent par une spécification de lecteur (par exemple, D:/).

Sous Windows, les chemins d'accès aux partages réseau qui ne sont pas mappés à une lettre de lecteur commencent par //sharename/.

Contrairement à la fonction canonicalPath(), les liens symboliques ou les éléments redondants « . » ou « .. » ne sont pas nécessairement supprimés.

Avertissement : si filePath() est vide, le comportement de cette fonction est indéfini.

Voir également absoluteFilePath(), path(), canonicalPath(), fileName() et isRelative().

QString QFileInfo::baseName() const

Renvoie le nom de base du fichier, sans le chemin d'accès.

Le nom de base correspond à tous les caractères du nom du fichier jusqu’au premier caractère « . » (non inclus).

Exemple :

QFileInfo fi("/tmp/archive.tar.gz");
QString base = fi.baseName();  // base = "archive"

Le nom de base d’un fichier est calculé de la même manière sur toutes les plateformes, indépendamment des conventions de nommage des fichiers (par exemple, « .bashrc » sous Unix a un nom de base vide, et le suffixe est « bashrc »).

Voir également fileName(), suffix(), completeSuffix() et completeBaseName().

QDateTime QFileInfo::birthTime() const

Renvoie la date et l'heure de création (naissance) du fichier, en heure locale.

Si l’heure de création du fichier n’est pas disponible, cette fonction renvoie une valeur non valide : QDateTime.

Si le fichier est un lien symbolique, cette fonction renvoie des informations sur la cible, et non sur le lien symbolique.

Cette fonction surcharge QFileInfo::birthTime(const QTimeZone &tz) et renvoie la même valeur que birthTime(QTimeZone::LocalTime).

Voir également lastModified(), lastRead(), metadataChangeTime() et fileTime().

[since 6.6] QDateTime QFileInfo::birthTime(const QTimeZone &tz) const

Renvoie la date et l'heure de création (naissance) du fichier.

L'heure renvoyée est exprimée dans le fuseau horaire spécifié par tz. Par exemple, vous pouvez utiliser QTimeZone::LocalTime ou QTimeZone::UTC pour obtenir respectivement l'heure dans le fuseau horaire local ou en UTC. Étant donné que l'API native du système de fichiers utilise généralement l'UTC, l'utilisation de QTimeZone::UTC est souvent plus rapide, car elle ne nécessite aucune conversion.

Si l'heure de création du fichier n'est pas disponible, cette fonction renvoie une valeur non valide QDateTime.

Si le fichier est un lien symbolique, cette fonction renvoie des informations sur la cible, et non sur le lien symbolique.

Cette fonction a été introduite dans Qt 6.6.

Voir également lastModified(const QTimeZone &), lastRead(const QTimeZone &), metadataChangeTime(const QTimeZone &) et fileTime(QFileDevice::FileTime, const QTimeZone &).

QString QFileInfo::bundleName() const

Renvoie le nom du bundle.

Sous macOS et iOS, cette méthode renvoie le nom localisé correspondant au bundle si le chemin d'accès est isBundle(). Sur toutes les autres plateformes, elle renvoie une chaîne vide QString.

Exemple :

QFileInfo fi("/Applications/Safari.app");
QString bundle = fi.bundleName();                // name = "Safari"

Voir également isBundle(), filePath(), baseName() et suffix().

bool QFileInfo::caching() const

Renvoie true si la mise en cache est activée ; sinon, renvoie false.

Voir également setCaching() et refresh().

QString QFileInfo::canonicalFilePath() const

Renvoie le chemin canonique de l'entrée du système de fichiers, y compris le nom de l'entrée, c'est-à-dire un chemin absolu sans liens symboliques ni éléments redondants de type '.' ou '..'.

Cette méthode renvoie une chaîne vide si l’entrée n’existe pas, si elle n’est pas accessible (par exemple, si l’utilisateur courant n’a pas accès à un chemin de répertoire) ou si une erreur se produit lors de la canonisation du chemin (généralement en raison de liens symboliques orphelins).

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

QString QFileInfo::canonicalPath() const

Renvoie le chemin canonique de l'entrée du système de fichiers (sans le nom de l'entrée), c'est-à-dire un chemin absolu sans liens symboliques ni éléments redondants de type « . » ou « .. ».

Cette méthode renvoie une chaîne vide si l’entrée n’existe pas, n’est pas accessible (par exemple, si l’utilisateur courant 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).

Voir également path() et absolutePath().

QString QFileInfo::completeBaseName() const

Renvoie le nom de base complet du fichier, sans le chemin d'accès.

Le nom de base complet comprend tous les caractères du fichier jusqu'au dernier caractère « . » (non inclus).

Exemple :

QFileInfo fi("/tmp/archive.tar.gz");
QString base = fi.completeBaseName();  // base = "archive.tar"

Voir également fileName(), suffix(), completeSuffix() et baseName().

QString QFileInfo::completeSuffix() const

Renvoie le suffixe complet (extension) du fichier.

Le suffixe complet est constitué de tous les caractères du fichier situés après le premier « . » (sans l'inclure).

Exemple :

QFileInfo fi("/tmp/archive.tar.gz");
QString ext = fi.completeSuffix();  // ext = "tar.gz"

Voir également fileName(), suffix(), baseName() et completeBaseName().

QDir QFileInfo::dir() const

Renvoie un objet ` QDir ` représentant le chemin d'accès au répertoire parent de l'entrée du système de fichiers à laquelle cette ` QFileInfo ` fait référence.

Remarque : l’ QDir renvoyé correspond toujours au répertoire parent de l’objet, même si l’ QFileInfo représente un répertoire.

Pour chacun des cas suivants, la fonction dir() renvoie l’ QDir "~/examples/191697" .

    QFileInfo fileInfo1("~/examples/191697/.");
    QFileInfo fileInfo2("~/examples/191697/..");
    QFileInfo fileInfo3("~/examples/191697/main.cpp");

Pour chacun des cas suivants, la fonction dir() renvoie l’ QDir "." .

    QFileInfo fileInfo4(".");
    QFileInfo fileInfo5("..");
    QFileInfo fileInfo6("main.cpp");

Voir également absolutePath(), filePath(), fileName(), isRelative() et absoluteDir().

bool QFileInfo::exists() const

Renvoie « true » si l'entrée du système de fichiers à laquelle « QFileInfo » fait référence existe ; sinon, renvoie « false ».

Remarque : si l'entrée est un lien symbolique pointant vers une cible inexistante, cette méthode renvoie « false ».

[static] bool QFileInfo::exists(const QString &path)

Renvoie true si l'entrée du système de fichiers path existe ; sinon, renvoie false.

Remarque : si ` path ` est un lien symbolique pointant vers une cible inexistante, cette méthode renvoie ` false`.

Remarque : l’utilisation de cette fonction est plus rapide que l’utilisation de ` QFileInfo(path).exists() ` pour accéder au système de fichiers.

QString QFileInfo::fileName() const

Renvoie le nom de l'entrée du système de fichiers à laquelle cette QFileInfo fait référence, sans le chemin d'accès.

Exemple :

QFileInfo fi("/tmp/archive.tar.gz");
QString name = fi.fileName();                // name = "archive.tar.gz"

Remarque : si cette fonction QFileInfo reçoit un chemin se terminant par un séparateur de répertoire '/', la partie « nom » de l'entrée est considérée comme vide.

Voir également isRelative(), filePath(), baseName() et suffix().

QString QFileInfo::filePath() const

Renvoie le chemin d'accès de l'entrée du système de fichiers à laquelle cette QFileInfo fait référence ; ce chemin peut être absolu ou relatif.

Voir également absoluteFilePath(), canonicalFilePath() et isRelative().

QDateTime QFileInfo::fileTime(QFileDevice::FileTime time) const

Renvoie l'horodatage du fichier spécifié par ` time`.

Si l'heure ne peut pas être déterminée, une date-heure non valide est renvoyée.

Si le fichier est un lien symbolique, cette fonction renvoie des informations sur la cible, et non sur le lien symbolique.

Cette fonction surcharge QFileInfo::fileTime(QFileDevice::FileTime, const QTimeZone &) et renvoie la même valeur que fileTime(time, QTimeZone::LocalTime).

Voir également birthTime(), lastModified(), lastRead() et metadataChangeTime().

[since 6.6] QDateTime QFileInfo::fileTime(QFileDevice::FileTime time, const QTimeZone &tz) const

Renvoie l'heure du fichier spécifiée par time.

L'heure renvoyée est exprimée dans le fuseau horaire spécifié par tz. Par exemple, vous pouvez utiliser QTimeZone::LocalTime ou QTimeZone::UTC pour obtenir respectivement l'heure dans le fuseau horaire local ou en UTC. Étant donné que l'API native du système de fichiers utilise généralement l'UTC, l'utilisation de QTimeZone::UTC est souvent plus rapide, car elle ne nécessite aucune conversion.

Si l’heure ne peut pas être déterminée, une date-heure non valide est renvoyée.

Si le fichier est un lien symbolique, cette fonction renvoie des informations sur la cible, et non sur le lien symbolique.

Cette fonction a été introduite dans Qt 6.6.

Voir également birthTime(const QTimeZone &), lastModified(const QTimeZone &), lastRead(const QTimeZone &), metadataChangeTime(const QTimeZone &) et QDateTime::isValid().

[since 6.0] std::filesystem::path QFileInfo::filesystemAbsoluteFilePath() const

Renvoie absoluteFilePath() sous la forme d'un objet de type std::filesystem::path.

Cette fonction a été introduite dans Qt 6.0.

Voir également absoluteFilePath().

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

Renvoie absolutePath() sous la forme d'un objet de type std::filesystem::path.

Cette fonction a été introduite dans Qt 6.0.

Voir également absolutePath().

[since 6.0] std::filesystem::path QFileInfo::filesystemCanonicalFilePath() const

Renvoie canonicalFilePath() sous la forme d'un objet de type ` std::filesystem::path`.

Cette fonction a été introduite dans Qt 6.0.

Voir aussi canonicalFilePath().

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

Renvoie canonicalPath() sous la forme d'un objet de type std::filesystem::path.

Cette fonction a été introduite dans Qt 6.0.

Voir également canonicalPath().

[since 6.0] std::filesystem::path QFileInfo::filesystemFilePath() const

Renvoie filePath() sous la forme d'un objet de type std::filesystem::path.

Cette fonction a été introduite dans Qt 6.0.

Voir également filePath().

[since 6.2] std::filesystem::path QFileInfo::filesystemJunctionTarget() const

Renvoie junctionTarget() sous la forme d'un objet de type « std::filesystem::path ».

Cette fonction a été introduite dans Qt 6.2.

Voir aussi junctionTarget().

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

Renvoie path() sous la forme d'un objet de type std::filesystem::path.

Cette fonction a été introduite dans Qt 6.0.

Voir également path().

Renvoie readSymLink() sous la forme d'un objet de type std::filesystem::path.

Cette fonction a été introduite dans Qt 6.6.

Voir aussi ` readSymLink()`.

[since 6.0] std::filesystem::path QFileInfo::filesystemSymLinkTarget() const

Renvoie symLinkTarget() sous la forme d'un std::filesystem::path.

Cette fonction a été introduite dans Qt 6.0.

Voir également symLinkTarget().

QString QFileInfo::group() const

Renvoie le groupe du fichier. Sous Windows, sur les systèmes où les fichiers n'ont pas de groupe, ou en cas d'erreur, une chaîne vide est renvoyée.

Cette fonction peut prendre un certain temps sous Unix (de l'ordre de quelques millisecondes).

Si le fichier est un lien symbolique, cette fonction renvoie des informations sur la cible, et non sur le lien symbolique.

Voir également groupId(), owner() et ownerId().

uint QFileInfo::groupId() const

Renvoie l'identifiant du groupe auquel appartient le fichier.

Sous Windows et sur les systèmes où les fichiers n'ont pas de groupe, cette fonction renvoie toujours (uint) -2.

Si le fichier est un lien symbolique, cette fonction renvoie des informations sur la cible, et non sur le lien symbolique.

Voir également group(), owner() et ownerId().

bool QFileInfo::isAbsolute() const

Renvoie « true » si le chemin d'accès de l'entrée du système de fichiers est absolu ; sinon, renvoie « false » (c'est-à-dire que le chemin est relatif).

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

Voir aussi isRelative().

[since 6.4] bool QFileInfo::isAlias() const

Renvoie « true » si cet objet pointe vers un alias ; sinon, renvoie « false ».

Les alias n'existent que sous macOS. Ils sont traités comme des fichiers normaux ; ainsi, l'ouverture d'un alias ouvre le fichier lui-même. Pour ouvrir le fichier ou le répertoire auquel un alias fait référence, utilisez ` symLinkTarget()` ().

Remarque : même si un alias pointe vers un fichier inexistant, isAlias() renvoie true.

Cette fonction a été introduite dans Qt 6.4.

Voir également isFile(), isDir(), isSymLink() et symLinkTarget().

bool QFileInfo::isBundle() const

Renvoie « true » si cet objet pointe vers un bundle ou vers un lien symbolique vers un bundle sous macOS et iOS ; sinon, renvoie « false ».

Si le fichier est un lien symbolique, cette fonction renvoie des informations sur la cible, et non sur le lien symbolique.

Voir également isDir(), isSymLink() et isFile().

bool QFileInfo::isDir() const

Renvoie « true » si cet objet pointe vers un répertoire ou vers un lien symbolique vers un répertoire. Renvoie « false » si l'objet pointe vers un élément qui n'est pas un répertoire (comme un fichier) ou qui n'existe pas.

Si le fichier est un lien symbolique, cette fonction renvoie des informations sur la cible, et non sur le lien symbolique.

Voir également isFile(), isSymLink() et isBundle().

bool QFileInfo::isExecutable() const

Renvoie ` true ` si l'entrée du système de fichiers à laquelle ` QFileInfo ` fait référence est exécutable ; sinon, renvoie ` false`.

Si le fichier est un lien symbolique, cette fonction renvoie des informations sur la cible, et non sur le lien symbolique.

Voir également isReadable(), isWritable() et permission().

bool QFileInfo::isFile() const

Renvoie « true » si cet objet pointe vers un fichier ou vers un lien symbolique vers un fichier. Renvoie « false » si l'objet pointe vers un élément qui n'est pas un fichier (comme un répertoire) ou qui n'existe pas.

Si le fichier est un lien symbolique, cette fonction renvoie des informations sur la cible, et non sur le lien symbolique.

Voir également isDir(), isSymLink() et isBundle().

bool QFileInfo::isHidden() const

Renvoie ` true ` si l'entrée du système de fichiers à laquelle ` QFileInfo ` fait référence est « cachée » ; sinon, renvoie ` false`.

Remarque : cette fonction renvoie « true » pour les entrées spéciales « . » et « .. » sous Unix, même si ` QDir::entryList ` les traite comme indiqué. Notez également que, comme cette fonction examine le nom du fichier, sous Unix, elle examinera le nom du lien symbolique, si ce fichier est un lien symbolique, et non le nom de la cible.

Sous Windows, cette fonction renvoie « true » si le fichier cible est masqué (et non le lien symbolique).

bool QFileInfo::isJunction() const

Renvoie « true » si l'objet pointe vers une jonction ; sinon, renvoie « false ».

Les jonctions n'existent que sur le système de fichiers NTFS de Windows et sont généralement créées par la commande ` mklink `. Elles peuvent être considérées comme des liens symboliques vers des répertoires et ne peuvent être créées que pour des chemins absolus sur le volume local.

bool QFileInfo::isNativePath() const

Renvoie « true » si le chemin d'accès au fichier peut être utilisé directement avec les API natives. Renvoie « false » si le fichier est pris en charge par un système de fichiers virtuel au sein de Qt, tel que le Qt Resource System.

Remarque : les chemins natifs peuvent tout de même nécessiter une conversion des séparateurs de chemin et de l’encodage des caractères, en fonction de la plateforme et des exigences d’entrée de l’API native.

Voir également QDir::toNativeSeparators(), QFile::encodeName(), filePath(), absoluteFilePath() et canonicalFilePath().

[since 6.10] bool QFileInfo::isOther() const

Renvoie « true » si cette « QFileInfo » fait référence à une entrée du système de fichiers qui n' est ni un répertoire, ni un fichier ordinaire, ni un lien symbolique. Sinon, renvoie « false ».

Si cet QFileInfo fait référence à une entrée inexistante, cette méthode renvoie false.

Si l’entrée est un lien symbolique orphelin (la cible n’existe pas), cette méthode renvoie ` false`. Pour un lien symbolique non orphelin, cette fonction renvoie des informations sur la cible, et non sur le lien symbolique.

Sous Unix, une entrée spéciale (autre) du système de fichiers est un FIFO, un socket, un périphérique de caractères ou un périphérique bloc. Pour plus de détails, consultez la mknod page de manuel.

Sous Windows (pour des raisons historiques, voir Symbolic Links and Shortcuts), cette méthode renvoie true pour les fichiers de type « .lnk ».

Cette fonction a été introduite dans Qt 6.10.

Voir également isDir(), isFile(), isSymLink() et QDirListing::IteratorFlag::ExcludeOther.

bool QFileInfo::isReadable() const

Renvoie « true » si l'utilisateur peut lire l'entrée du système de fichiers à laquelle « QFileInfo » fait référence ; sinon, renvoie « false ».

Si le fichier est un lien symbolique, cette fonction renvoie des informations sur la cible, et non sur le lien symbolique.

Remarque : si la vérification de type « NTFS permissions » n'a pas été activée, le résultat sous Windows indiquera simplement si l'entrée existe ou non.

Voir aussi isWritable(), isExecutable() et permission().

bool QFileInfo::isRelative() const

Renvoie « true » si le chemin d'accès de l'entrée du système de fichiers est relatif ; sinon, renvoie « false » (c'est-à-dire que le chemin est absolu).

Sous Unix, les chemins absolus commencent par le séparateur de répertoire '/'. Sous Windows, les chemins absolus commencent par une spécification de lecteur (par exemple, D:/).

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

Voir également isAbsolute().

bool QFileInfo::isRoot() const

Renvoie « true » si l'objet pointe vers un répertoire ou vers un lien symbolique vers un répertoire, et que ce répertoire est le répertoire racine ; sinon, renvoie « false ».

bool QFileInfo::isShortcut() const

Renvoie « true » si cet objet pointe vers un raccourci ; sinon, renvoie « false ».

Les raccourcis n’existent que sous Windows et sont généralement des fichiers de type « .lnk ». Par exemple, la valeur «true» sera renvoyée pour les raccourcis (fichiers «*.lnk ») sous Windows, mais la valeur «false» sera renvoyée sous Unix (y compris macOS et iOS).

Les fichiers de raccourci (.lnk) sont traités comme des fichiers normaux. Leur ouverture entraîne l’ouverture du fichier « .lnk » lui-même. Pour ouvrir le fichier auquel un raccourci fait référence, il faut utiliser la fonction ` symLinkTarget()` sur ce raccourci.

Remarque : même si un raccourci (raccourci cassé) pointe vers un fichier inexistant, isShortcut() renvoie « true ».

Voir également isFile(), isDir(), isSymbolicLink() et symLinkTarget().

Renvoie « true » si cet objet pointe vers un lien symbolique, un raccourci ou un alias ; sinon, renvoie « false ».

Les liens symboliques existent sous Unix (y compris macOS et iOS) et sous Windows ; ils sont généralement créés respectivement par les commandes ln -s et mklink. L'ouverture d'un lien symbolique revient en fait à ouvrir le fichier link's target.

De plus, la valeur « true » sera renvoyée pour les raccourcis (fichiers*.lnk ) sous Windows, et pour les alias sous macOS. Ce comportement est obsolète et sera probablement modifié dans une future version de Qt. L’ouverture d’un raccourci ou d’un alias ouvrira le fichier .lnk ou le fichier d’alias lui-même.

Exemple :

QFileInfo info(fileName);
if (info.isSymLink())
    fileName = info.symLinkTarget();

Remarque : la fonction ` exists()` renvoie ` true ` si le lien symbolique pointe vers une cible existante ; dans le cas contraire, elle renvoie ` false`.

Voir également isFile(), isDir() et symLinkTarget().

Renvoie ` true ` si cet objet pointe vers un lien symbolique ; sinon, renvoie ` false`.

Les liens symboliques existent sous Unix (y compris macOS et iOS) et sous Windows (liens symboliques NTFS) et sont généralement créés respectivement par les commandes ` ln -s ` ou ` mklink `.

Unix gère les liens symboliques de manière transparente. L'ouverture d'un lien symbolique revient en fait à ouvrir le fichier « link's target ».

Contrairement à ` isSymLink()`, la valeur `false` est renvoyée pour les raccourcis (fichiers `*.lnk `) sous Windows et les alias sous macOS. Utilisez plutôt ` QFileInfo::isShortcut()` et ` QFileInfo::isAlias()`.

Remarque : la fonction exists() renvoie true si le lien symbolique pointe vers une cible existante ; dans le cas contraire, elle renvoie false.

Voir également isFile(), isDir(), isShortcut() et symLinkTarget().

bool QFileInfo::isWritable() const

Renvoie « true » si l'utilisateur peut écrire dans l'entrée du système de fichiers à laquelle « QFileInfo » fait référence ; sinon, renvoie « false ».

Si le fichier est un lien symbolique, cette fonction renvoie des informations sur la cible, et non sur le lien symbolique.

Remarque : si la vérification de l'NTFS permissions n'a pas été activée, le résultat sous Windows indiquera simplement si l'entrée est marquée comme « Lecture seule ».

Voir aussi isReadable(), isExecutable() et permission().

[since 6.2] QString QFileInfo::junctionTarget() const

Permet de résoudre une jonction NTFS en chemin d'accès vers lequel elle pointe.

Renvoie le chemin d'accès absolu vers le répertoire vers lequel pointe une jonction NTFS, ou une chaîne vide si l'objet n'est pas une jonction NTFS.

Il n'y a aucune garantie que le répertoire nommé par la jonction NTFS existe réellement.

Cette fonction a été introduite dans Qt 6.2.

Voir également isJunction(), isFile(), isDir(), isSymLink(), isSymbolicLink() et isShortcut().

QDateTime QFileInfo::lastModified() const

Renvoie la date et l'heure de la dernière modification du fichier.

Si le fichier est un lien symbolique, cette fonction renvoie des informations sur la cible, et non sur le lien symbolique.

Cette fonction surcharge la méthode ` QFileInfo::lastModified` (const QTimeZone &) et renvoie la même valeur que ` lastModified(QTimeZone::LocalTime)`.

Voir également birthTime(), lastRead(), metadataChangeTime() et fileTime().

[since 6.6] QDateTime QFileInfo::lastModified(const QTimeZone &tz) const

Renvoie la date et l'heure de la dernière modification du fichier.

L'heure renvoyée est exprimée dans le fuseau horaire spécifié par tz. Par exemple, vous pouvez utiliser QTimeZone::LocalTime ou QTimeZone::UTC pour obtenir respectivement l'heure dans le fuseau horaire local ou en UTC. Étant donné que l'API native du système de fichiers utilise généralement l'UTC, l'utilisation de QTimeZone::UTC est souvent plus rapide, car elle ne nécessite aucune conversion.

Si le fichier est un lien symbolique, cette fonction renvoie des informations sur la cible, et non sur le lien symbolique.

Cette fonction a été introduite dans Qt 6.6.

Voir également birthTime(const QTimeZone &), lastRead(const QTimeZone &), metadataChangeTime(const QTimeZone &) et fileTime(QFileDevice::FileTime, const QTimeZone &).

QDateTime QFileInfo::lastRead() const

Renvoie la date et l'heure de la dernière lecture (du dernier accès) du fichier.

Sur les plateformes où cette information n’est pas disponible, renvoie la même heure que la fonction ` lastModified()`.

Si le fichier est un lien symbolique, cette fonction renvoie des informations sur la cible, et non sur le lien symbolique.

Cette fonction surcharge la méthode QFileInfo::lastRead(const QTimeZone &) et renvoie la même valeur que la méthode lastRead(QTimeZone::LocalTime).

Voir également birthTime(), lastModified(), metadataChangeTime() et fileTime().

[since 6.6] QDateTime QFileInfo::lastRead(const QTimeZone &tz) const

Renvoie la date et l'heure de la dernière lecture (du dernier accès) du fichier.

L'heure renvoyée est exprimée dans le fuseau horaire spécifié par ` tz`. Par exemple, vous pouvez utiliser ` QTimeZone::LocalTime ` ou ` QTimeZone::UTC ` pour obtenir respectivement l'heure dans le fuseau horaire local ou en UTC. Étant donné que l'API native du système de fichiers utilise généralement l'UTC, l'utilisation de ` QTimeZone::UTC ` est souvent plus rapide, car elle ne nécessite aucune conversion.

Sur les plateformes où cette information n’est pas disponible, cette fonction renvoie la même heure que lastModified().

Si le fichier est un lien symbolique, cette fonction renvoie des informations sur la cible, et non sur le lien symbolique.

Cette fonction a été introduite dans Qt 6.6.

Voir également birthTime(const QTimeZone &), lastModified(const QTimeZone &), metadataChangeTime(const QTimeZone &) et fileTime(QFileDevice::FileTime, const QTimeZone &).

bool QFileInfo::makeAbsolute()

Si le chemin d'accès de l'entrée du système de fichiers est relatif, cette méthode le convertit en chemin absolu et renvoie true; si le chemin est déjà absolu, cette méthode renvoie false.

Voir également filePath() et isRelative().

QDateTime QFileInfo::metadataChangeTime() const

Renvoie la date et l'heure de la dernière modification des métadonnées du fichier, en heure locale.

Une modification des métadonnées se produit lors de la création initiale du fichier, mais également chaque fois que l'utilisateur écrit ou définit des informations d'inode (par exemple, en modifiant les droits d'accès du fichier).

Si le fichier est un lien symbolique, cette fonction renvoie des informations sur la cible, et non sur le lien symbolique.

Cette fonction surcharge QFileInfo::metadataChangeTime(const QTimeZone &tz) et renvoie la même valeur que metadataChangeTime(QTimeZone::LocalTime).

Voir également birthTime(), lastModified(), lastRead() et fileTime().

[since 6.6] QDateTime QFileInfo::metadataChangeTime(const QTimeZone &tz) const

Renvoie la date et l'heure de la dernière modification des métadonnées du fichier. Une modification des métadonnées se produit lors de la création initiale du fichier, mais également chaque fois que l'utilisateur écrit ou définit des informations d'inode (par exemple, en modifiant les droits d'accès du fichier).

L'heure renvoyée est exprimée dans le fuseau horaire spécifié par tz. Par exemple, vous pouvez utiliser QTimeZone::LocalTime ou QTimeZone::UTC pour obtenir respectivement l'heure dans le fuseau horaire local ou en UTC. Étant donné que l'API native du système de fichiers utilise généralement l'UTC, l'utilisation de QTimeZone::UTC est souvent plus rapide, car elle ne nécessite aucune conversion.

Si le fichier est un lien symbolique, cette fonction renvoie des informations sur la cible, et non sur le lien symbolique.

Cette fonction a été introduite dans Qt 6.6.

Voir également birthTime(const QTimeZone &), lastModified(const QTimeZone &), lastRead(const QTimeZone &) et fileTime(QFileDevice::FileTime time, const QTimeZone &).

QString QFileInfo::owner() const

Renvoie le propriétaire du fichier. Sur les systèmes où les fichiers n'ont pas de propriétaire, ou en cas d'erreur, une chaîne vide est renvoyée.

Cette fonction peut prendre un certain temps sous Unix (de l'ordre de quelques millisecondes). Sous Windows, elle renvoie une chaîne vide à moins que la vérification « NTFS permissions » n'ait été activée.

Si le fichier est un lien symbolique, cette fonction renvoie des informations sur la cible, et non sur le lien symbolique.

Voir également ownerId(), group() et groupId().

uint QFileInfo::ownerId() const

Renvoie l'identifiant du propriétaire du fichier.

Sous Windows et sur les systèmes où les fichiers n'ont pas de propriétaire, cette fonction renvoie ((uint) -2).

Si le fichier est un lien symbolique, cette fonction renvoie des informations sur la cible, et non sur le lien symbolique.

Voir également owner(), group() et groupId().

QString QFileInfo::path() const

Renvoie le chemin d'accès de l'entrée du système de fichiers à laquelle cette QFileInfo fait référence, en excluant le nom de l'entrée.

Remarque : si l'QFileInfo est fournie avec un chemin se terminant par un séparateur de répertoire '/', la partie « nom » de l'entrée est considérée comme vide. Dans ce cas, cette fonction renvoie le chemin complet.

Voir également filePath(), absolutePath(), canonicalPath(), dir(), fileName() et isRelative().

bool QFileInfo::permission(QFileDevice::Permissions permissions) const

Vérifie les droits d'accès aux fichiers. L'argument ` permissions ` peut être constitué de plusieurs indicateurs de type `QFile::Permissions` combinés par l'opérateur OU afin de vérifier différentes combinaisons de droits d'accès.

Sur les systèmes où les fichiers ne disposent pas de droits d’accès, cette fonction renvoie toujours ` true`.

Remarque : le résultat peut être inexact sous Windows si la vérification des « NTFS permissions » n’a pas été activée.

Exemple :

QFileInfo fi("/tmp/archive.tar.gz");
if (fi.permission(QFile::WriteUser | QFile::ReadGroup))
    qWarning("I can change the file; my group can read the file");
if (fi.permission(QFile::WriteGroup | QFile::WriteOther))
    qWarning("The group or others can change the file");

Si le fichier est un lien symbolique, cette fonction renvoie des informations sur la cible, et non sur le lien symbolique.

Voir également isReadable(), isWritable() et isExecutable().

QFileDevice::Permissions QFileInfo::permissions() const

Renvoie la combinaison complète, sous forme d'opération « OU », des autorisations QFile::Permissions pour le fichier.

Remarque : le résultat peut être inexact sous Windows si la vérification « NTFS permissions » n'a pas été activée.

Si le fichier est un lien symbolique, cette fonction renvoie des informations sur la cible, et non sur le lien symbolique.

Lit le chemin vers lequel pointe le lien symbolique.

Renvoie le chemin brut référencé par le lien symbolique, sans résoudre de chemin relatif par rapport au répertoire contenant le lien symbolique. La chaîne renvoyée ne sera un chemin absolu que si le lien symbolique y fait effectivement référence en tant que tel. Renvoie une chaîne vide si l’objet n’est pas un lien symbolique.

Cette fonction a été introduite dans Qt 6.6.

Voir également symLinkTarget(), exists(), isSymLink(), isDir() et isFile().

void QFileInfo::refresh()

Actualise les informations relatives à l'entrée du système de fichiers à laquelle cette méthode « QFileInfo » fait référence, c'est-à-dire qu'elle lit les informations dans le système de fichiers lors de la prochaine récupération d'une propriété mise en cache.

void QFileInfo::setCaching(bool enable)

Si la valeur de ` enable ` est `true`, la mise en cache des informations sur les fichiers est activée. Si la valeur de ` enable ` est `false`, la mise en cache est désactivée.

Lorsque la mise en cache est activée, QFileInfo lit les informations sur le fichier à partir du système de fichiers la première fois qu’elles sont requises, mais généralement pas par la suite.

La mise en cache est activée par défaut.

Voir également refresh() et caching().

void QFileInfo::setFile(const QString &path)

Définit le chemin d'accès de l'entrée du système de fichiers sur laquelle porte cette QFileInfo, à l'adresse path; ce chemin peut être absolu ou relatif.

Sous Unix, les chemins absolus commencent par le séparateur de répertoire '/'. Sous Windows, les chemins absolus commencent par une spécification de lecteur (par exemple, D:/).

Les chemins relatifs commencent par un nom de répertoire ou un nom de fichier ordinaire et spécifient le chemin d'une entrée du système de fichiers par rapport au répertoire de travail actuel.

Exemple :

QFileInfo info("/usr/bin/env");

QString path = info.absolutePath(); // path = /usr/bin
QString base = info.baseName(); // base = env

info.setFile("/etc/hosts");

path = info.absolutePath(); // path = /etc
base = info.baseName(); // base = hosts

Voir également isFile(), isRelative(), QDir::setCurrent() et QDir::isRelativePath().

[since 6.0] void QFileInfo::setFile(const std::filesystem::path &path)

Définit le chemin d'accès de l'entrée du système de fichiers sur laquelle porte l'QFileInfo, à l'adresse path.

Si ` path ` est un chemin relatif, ` QFileInfo ` aura également un chemin relatif.

Cette fonction a été introduite dans Qt 6.0.

void QFileInfo::setFile(const QFileDevice &file)

Définit le fichier sur lequel porte l'QFileInfo, à savoir file.

Si ` file ` contient un chemin relatif, ` QFileInfo ` contiendra également un chemin relatif.

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

Voir également isRelative().

void QFileInfo::setFile(const QDir &dir, const QString &path)

Définit le chemin d'accès de l'entrée du système de fichiers sur laquelle porte cette QFileInfo à path dans le répertoire dir.

Si dir possède un chemin relatif, QFileInfo aura également un chemin relatif.

Si path est absolu, le répertoire spécifié par dir sera ignoré.

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

Voir également isRelative().

qint64 QFileInfo::size() const

Renvoie la taille du fichier en octets. Si le fichier n'existe pas ou ne peut pas être récupéré, la fonction renvoie 0.

Si le fichier est un lien symbolique, cette fonction renvoie des informations sur la cible, et non sur le lien symbolique.

Voir aussi exists().

[since 6.0] void QFileInfo::stat()

Lit tous les attributs à partir du système de fichiers.

Cela s'avère utile lorsque des informations sur le système de fichiers sont collectées dans un thread de travail, puis transmises à l'interface utilisateur sous la forme d'instances d'QFileInfo s mises en cache.

Cette fonction a été introduite dans Qt 6.0.

Voir également ` setCaching()` et ` refresh()`.

QString QFileInfo::suffix() const

Renvoie le suffixe (extension) du fichier.

Le suffixe est constitué de tous les caractères du fichier situés après le dernier « . » (sans inclure celui-ci).

Exemple :

QFileInfo fi("/tmp/archive.tar.gz");
QString ext = fi.suffix();  // ext = "gz"

Le suffixe d'un fichier est calculé de la même manière sur toutes les plateformes, indépendamment des conventions de nommage des fichiers (par exemple, « .bashrc » sous Unix a un nom de base vide, et le suffixe est « bashrc »).

Voir également fileName(), completeSuffix(), baseName() et completeBaseName().

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

Permet d'échanger les informations de ce fichier avec celles de other. Cette opération est très rapide et ne rencontre jamais d'échec.

QString QFileInfo::symLinkTarget() const

Renvoie le chemin absolu vers le fichier ou le répertoire vers lequel pointe un lien symbolique, ou une chaîne vide si l'objet n'est pas un lien symbolique.

Ce nom ne correspond pas nécessairement à un fichier existant ; il s'agit simplement d'une chaîne de caractères.

Remarque : la fonction ` exists()` renvoie ` true ` si le lien symbolique pointe vers une cible existante, sinon elle renvoie ` false`.

Voir également exists(), isSymLink(), isDir() et isFile().

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

Cette opération attribue other à cette instance de QFileInfo.

Remarque : l’objet d’origine other est placé dans un état partiellement formé, dans lequel les seules opérations valides sont la destruction et l’affectation d’une nouvelle valeur.

QFileInfo &QFileInfo::operator=(const QFileInfo &fileinfo)

Crée une copie de l'fileinfo donné et l'affecte à cet QFileInfo.

Contenu associé pour les non-membres

QFileInfoList

Synonyme de QList<QFileInfo>.

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

Renvoie « true » si « QFileInfo lhs » fait référence à une entrée de système de fichiers différente de celle à laquelle renvoie « rhs » ; sinon, renvoie « false ».

Voir également operator==().

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

Renvoie ` true ` si ` QFileInfo `, ` lhs ` et ` QFileInfo ` rhs font référence à la même entrée du système de fichiers ; sinon, renvoie ` false`.

Notez que le résultat de la comparaison de deux objets ` QFileInfo ` vides, ne contenant aucune référence à une entrée du système de fichiers (chemins qui n’existent pas ou qui sont vides), est indéfini.

Avertissement : cette fonction ne compare pas deux liens symboliques différents pointant vers la même cible.

Avertissement : sous Windows, les chemins longs et courts qui font référence à la même entrée du système de fichiers sont traités comme s’ils faisaient référence à des entrées différentes.

Voir aussi operator!=().

Documentation des macros

[since 6.0] QT_IMPLICIT_QFILEINFO_CONSTRUCTION

La définition de cette macro rend la plupart des constructeurs de type ` QFileInfo ` implicites plutôt qu'explicites. La création d’objets de type ` QFileInfo ` étant coûteuse, il convient d’éviter de les créer par inadvertance, surtout s’il existe des alternatives moins coûteuses. Par exemple :

QDirIterator it(dir);
while (it.hasNext()) {
    // Implicit conversion from QString (returned by it.next()):
    // may create unnecessary data structures and cause additional
    // accesses to the file system. Unless this macro is defined,
    // this line does not compile.

    QFileInfo fi = it.next();

    ~~~
}

Utilisez plutôt l’API appropriée :

QDirIterator it(dir);
while (it.hasNext()) {
    // Extract the QFileInfo from the iterator directly:
    QFileInfo fi = it.nextFileInfo();

    ~~~
}

La construction à partir de ` QString`, ` QFile`, etc. est toujours possible en utilisant l’initialisation directe plutôt que l’initialisation par copie :

QFileInfo fi1 = some_string; // Does not compile unless this macro is defined
QFileInfo fi2(some_string);  // OK
QFileInfo fi3{some_string};  // Possibly better, avoids the risk of the Most Vexing Parse
auto fi4 = QFileInfo(some_string); // OK

Cette macro est fournie à des fins de compatibilité. Son utilisation n’est pas recommandée dans le nouveau code.

Cette macro a été introduite dans Qt 6.0.

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