Sur cette page

QStorageInfo Class

Fournit des informations sur le stockage et les lecteurs actuellement montés. Plus d'informations...

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

Cette classe est comparable à l'égalité.

Fonctions publiques

QStorageInfo()
QStorageInfo(const QDir &dir)
QStorageInfo(const QString &path)
QStorageInfo(const QStorageInfo &other)
(since 6.10) QStorageInfo(QStorageInfo &&other)
~QStorageInfo()
int blockSize() const
qint64 bytesAvailable() const
qint64 bytesFree() const
qint64 bytesTotal() const
QByteArray device() const
QString displayName() const
QByteArray fileSystemType() const
bool isReadOnly() const
bool isReady() const
bool isRoot() const
bool isValid() const
QString name() const
void refresh()
QString rootPath() const
void setPath(const QString &path)
QByteArray subvolume() const
void swap(QStorageInfo &other)
QStorageInfo &operator=(QStorageInfo &&other)
QStorageInfo &operator=(const QStorageInfo &other)

Membres publics statiques

QList<QStorageInfo> mountedVolumes()
QStorageInfo root()
bool operator!=(const QStorageInfo &lhs, const QStorageInfo &rhs)
bool operator==(const QStorageInfo &lhs, const QStorageInfo &rhs)

Description détaillée

Permet de récupérer des informations sur l'espace du volume, son point de montage, son étiquette et le nom du système de fichiers.

Vous pouvez créer une instance de QStorageInfo en passant le chemin d'accès au point de montage du volume en tant que paramètre du constructeur, ou vous pouvez le définir à l'aide de la méthode setPath(). La méthode statique mountedVolumes() peut être utilisée pour obtenir la liste de tous les systèmes de fichiers montés.

QStorageInfo met toujours en cache les informations récupérées, mais vous pouvez appeler refresh() pour invalider le cache.

L'exemple suivant permet de récupérer les informations les plus courantes sur le volume racine du système et d'imprimer des informations à son sujet.

QStorageInfo storage = QStorageInfo::root() ;
qDebug() << storage.rootPath();
if (storage.isReadOnly())    qDebug() << "isReadOnly:" << storage.isReadOnly();

qDebug() << "name:" << storage.name();
qDebug() << "fileSystemType:" << storage.fileSystemType();
qDebug() << "size:" << storage.bytesTotal()/1000/1000 << "MB";
qDebug() << "availableSize:" << storage.bytesAvailable()/1000/1000 << "MB";

Documentation sur les fonctions membres

QStorageInfo::QStorageInfo()

Construit un objet QStorageInfo vide.

Les objets créés avec le constructeur par défaut sont invalides et ne sont donc pas prêts à être utilisés.

Voir aussi setPath(), isReady() et isValid().

[explicit] QStorageInfo::QStorageInfo(const QDir &dir)

Construit un nouvel objet QStorageInfo qui donne des informations sur le volume contenant le dossier dir.

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

Construit un nouvel objet QStorageInfo qui donne des informations sur le volume monté à l'adresse path.

Si vous transmettez un répertoire ou un fichier, l'objet QStorageInfo fera référence au volume où se trouve ce répertoire ou ce fichier. Vous pouvez vérifier si l'objet créé est correct en utilisant la méthode isValid().

L'exemple suivant montre comment obtenir le volume sur lequel se trouve l'application. Il est recommandé de toujours vérifier que le volume est prêt et valide.

QStorageInfo storage(qApp->applicationDirPath());
if (storage.isValid() && storage.isReady()) {
    // ...
}

Voir aussi setPath().

QStorageInfo::QStorageInfo(const QStorageInfo &other)

Construit un nouvel objet QStorageInfo qui est une copie de l'objet QStorageInfo other.

[constexpr noexcept, since 6.10] QStorageInfo::QStorageInfo(QStorageInfo &&other)

Move-construit un nouveau QStorageInfo à partir de other.

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

Cette fonction a été introduite dans Qt 6.10.

[noexcept] QStorageInfo::~QStorageInfo()

Détruit l'objet QStorageInfo et libère ses ressources.

int QStorageInfo::blockSize() const

Renvoie la taille optimale des blocs de transfert pour ce système de fichiers.

Retourne -1 si QStorageInfo n'a pas pu déterminer la taille ou si l'objet QStorageInfo n'est pas valide.

qint64 QStorageInfo::bytesAvailable() const

Renvoie la taille (en octets) disponible pour l'utilisateur actuel. Elle renvoie la taille totale disponible si l'utilisateur est l'utilisateur root ou un administrateur système.

Cette taille peut être inférieure ou égale à la taille libre renvoyée par la fonction bytesFree().

Retourne -1 si l'objet QStorageInfo n'est pas valide.

Voir aussi bytesTotal() et bytesFree().

qint64 QStorageInfo::bytesFree() const

Renvoie le nombre d'octets libres dans un volume. Notez que s'il y a des quotas sur le système de fichiers, cette valeur peut être plus grande que la valeur retournée par bytesAvailable().

Retourne -1 si l'objet QStorageInfo n'est pas valide.

Voir aussi bytesTotal() et bytesAvailable().

qint64 QStorageInfo::bytesTotal() const

Renvoie la taille totale du volume en octets.

Retourne -1 si l'objet QStorageInfo n'est pas valide.

Voir aussi bytesFree() et bytesAvailable().

QByteArray QStorageInfo::device() const

Renvoie le périphérique de ce volume.

Par exemple, sur les systèmes de fichiers Unix (y compris macOS), cela renvoie le chemin d'accès devpath comme /dev/sda0 pour les stockages locaux. Sous Windows, il renvoie le chemin UNC commençant par \\\\?\\ pour les stockages locaux (en d'autres termes, le GUID du volume).

Voir aussi rootPath() et subvolume().

QString QStorageInfo::displayName() const

Renvoie le nom du volume, s'il est disponible, ou le chemin d'accès à la racine s'il ne l'est pas.

QByteArray QStorageInfo::fileSystemType() const

Renvoie le nom du type du système de fichiers.

Cette fonction dépend de la plate-forme et les noms des systèmes de fichiers peuvent varier d'un système d'exploitation à l'autre. Par exemple, sur les systèmes de fichiers Windows, ils peuvent être nommés NTFS, et sur Linux, ils peuvent être nommés ntfs-3g ou fuseblk.

Voir également name().

bool QStorageInfo::isReadOnly() const

Retourne true si le système de fichiers actuel est protégé contre l'écriture, false dans le cas contraire.

bool QStorageInfo::isReady() const

Retourne true si le système de fichiers actuel est prêt à fonctionner, false dans le cas contraire. Par exemple, false est renvoyé si le volume du CD n'est pas inséré.

Notez que fileSystemType(), name(), bytesTotal(), bytesFree() et bytesAvailable() renvoient des données non valides jusqu'à ce que le volume soit prêt.

Voir également isValid().

bool QStorageInfo::isRoot() const

Retourne true si ce QStorageInfo représente le volume racine du système, false dans le cas contraire.

Sur les systèmes de fichiers Unix, le volume racine est un volume monté sur /. Sous Windows, le volume racine est le volume sur lequel le système d'exploitation est installé.

Voir également root().

bool QStorageInfo::isValid() const

Retourne vrai si le site QStorageInfo spécifié par rootPath existe et est monté correctement.

Voir aussi isReady().

[static] QList<QStorageInfo> QStorageInfo::mountedVolumes()

Renvoie la liste des objets QStorageInfo correspondant à la liste des systèmes de fichiers actuellement montés.

Sous Windows, cette liste renvoie les lecteurs visibles dans le dossier Poste de travail. Sur les systèmes d'exploitation Unix, elle renvoie la liste de tous les systèmes de fichiers montés (à l'exception des pseudo-systèmes de fichiers).

Par défaut, cette option renvoie tous les systèmes de fichiers actuellement montés.

L'exemple montre comment récupérer tous les systèmes de fichiers disponibles, en ignorant ceux qui sont en lecture seule.

foreach (const QStorageInfo &storage, QStorageInfo::mountedVolumes()) {
    if (storage.isValid() && storage.isReady()) {
        if (!storage.isReadOnly()) {
            // ...
        }
    }
}

Voir aussi root().

QString QStorageInfo::name() const

Renvoie le nom lisible par l'homme d'un système de fichiers, généralement appelé label.

Tous les systèmes de fichiers ne prennent pas en charge cette fonctionnalité. Dans ce cas, la valeur renvoyée par cette méthode peut être vide. Une chaîne vide est renvoyée si le système de fichiers ne prend pas en charge les étiquettes ou si aucune étiquette n'est définie.

Sous Linux, la récupération de l'étiquette du volume nécessite la présence de udev dans le système.

Voir également fileSystemType().

void QStorageInfo::refresh()

Réinitialise le cache interne de QStorageInfo.

QStorageInfo QStorageInfo récupère les informations lors de la construction de l'objet et/ou lors de l'appel de la méthode setPath(). Vous devez réinitialiser manuellement le cache en appelant cette fonction pour mettre à jour les informations sur le stockage.

[static] QStorageInfo QStorageInfo::root()

Renvoie un objet QStorageInfo qui représente le volume racine du système.

Sur les systèmes Unix, cet appel renvoie le volume racine ('/') ; sous Windows, le volume où le système d'exploitation est installé.

Voir également isRoot().

QString QStorageInfo::rootPath() const

Renvoie le point de montage du système de fichiers que cet objet QStorageInfo représente.

Sous Windows, il renvoie la lettre du volume au cas où le volume n'est pas monté sur un répertoire.

Notez que la valeur renvoyée par rootPath() est le point de montage réel d'un volume et peut ne pas être égale à la valeur transmise au constructeur ou à la méthode setPath(). Par exemple, si vous n'avez que le volume racine dans le système et que vous passez '/directory' à setPath(), cette méthode renverra '/'.

Voir également setPath() et device().

void QStorageInfo::setPath(const QString &path)

Définit cet objet QStorageInfo sur le système de fichiers monté où se trouve path.

path peut être soit le chemin racine du système de fichiers, soit un répertoire, soit un fichier dans ce système de fichiers.

Voir aussi rootPath().

QByteArray QStorageInfo::subvolume() const

Renvoie le nom du sous-volume pour ce volume.

Certains types de systèmes de fichiers autorisent plusieurs sous-volumes à l'intérieur d'un périphérique, qui peuvent être montés dans des chemins différents (par exemple, les montages "bind" sous Unix, ou les sous-volumes du système de fichiers Btrfs). Si le sous-volume a pu être détecté, son nom est renvoyé par cette fonction. Le format du nom du sous-volume est spécifique à chaque type de système de fichiers.

Si ce volume n'a pas été monté à partir d'un sous-volume d'un système de fichiers plus important ou si le sous-volume n'a pas pu être détecté, cette fonction renvoie un tableau d'octets vide.

Voir également device().

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

Échange cette information sur le volume avec other. Cette opération est très rapide et n'échoue jamais.

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

Move-assigne other à cette instance QStorageInfo.

L'objet déplacé other est placé dans un état valide, mais non spécifié.

QStorageInfo &QStorageInfo::operator=(const QStorageInfo &other)

Fait une copie de l'objet QStorageInfo other et l'affecte à cet objet QStorageInfo.

Non-membres apparentés

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

Renvoie true si l'objet QStorageInfo lhs fait référence à un lecteur ou à un volume différent de l'objet QStorageInfo rhs ; sinon, renvoie false.

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

Renvoie true si l'objet QStorageInfo lhs fait référence au même lecteur ou volume que l'objet QStorageInfo rhs ; sinon, il renvoie false.

Notez que le résultat de la comparaison de deux objets QStorageInfo non valides est toujours positif.

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