Класс QStorageInfo
Предоставляет информацию о подключённых хранилищах и дисках. Подробнее...
| Заголовок: | #include <QStorageInfo> |
| qmake: | QT += core |
| С тех пор: | Qt 5.4 |
Открытые функции
| QStorageInfo() | |
| QStorageInfo(const QString &path) | |
| QStorageInfo(const QDir &dir) | |
| QStorageInfo(const 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=(const QStorageInfo &other) |
| QStorageInfo & | operator=(QStorageInfo &&other) |
Статические открытые члены
| QList<QStorageInfo> | mountedVolumes() |
| QStorageInfo | root() |
Связанные нечлены
| bool | operator!=(const QStorageInfo &first, const QStorageInfo &second) |
| bool | operator==(const QStorageInfo &first, const QStorageInfo &second) |
Подробное описание
Предоставляет информацию о подключённых хранилищах и дисках.
Позволяет получить информацию о занимаемом объёме, точке подключения, метке и имени файловой системы тома.
Вы можете создать экземпляр QStorageInfo, передав путь к точке подключения тома в качестве параметра конструктора, или установить его с помощью метода setPath(). Статический метод mountedVolumes() позволяет получить список всех подключённых файловых систем.
QStorageInfo всегда кэширует полученную информацию, но вы можете вызвать refresh(), чтобы очистить кэш.
В следующем примере извлекается наиболее распространённая информация о корневом томе системы и выводится информация о нём.
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"; Документация по членам-функциям
QStorageInfo::QStorageInfo()
Создаёт пустой объект QStorageInfo.
Объекты, созданные с помощью конструктора по умолчанию, будут недействительными и, следовательно, не будут готовы к использованию.
См. также setPath(), isReady() и isValid().
QStorageInfo::QStorageInfo(const QString &path)
Создаёт новый объект QStorageInfo, который содержит информацию о подключенном томе по пути path.
Если вы передаёте директорию или файл, объект QStorageInfo будет ссылаться на том, в котором расположена эта директория или файл. Вы можете проверить корректность созданного объекта с помощью метода isValid().
В следующем примере показано, как получить том, в котором находится приложение. Рекомендуется всегда проверять, что том готов и действителен.
QStorageInfo storage(qApp->applicationDirPath());
if (storage.isValid() && storage.isReady()) {
// ...
} См. также setPath().
QStorageInfo::QStorageInfo(const QDir &dir)
Создаёт новый объект QStorageInfo, который содержит информацию о томе, содержащем папку dir.
QStorageInfo::QStorageInfo(const QStorageInfo &other)
Создаёт новый объект QStorageInfo, который является копией объекта QStorageInfo other.
QStorageInfo::~QStorageInfo()
Удаляет объект QStorageInfo и освобождает его ресурсы.
int QStorageInfo::blockSize() const
Возвращает оптимальный размер блока передачи для этой файловой системы.
Возвращает -1, если QStorageInfo не смог определить размер или если объект QStorageInfo не действителен.
Эта функция была добавлена в Qt 5.6.
qint64 QStorageInfo::bytesAvailable() const
Возвращает размер (в байтах), доступный для текущего пользователя. Возвращает общий доступный размер, если пользователь является root-пользователем или системным администратором.
Этот размер может быть меньше или равен размеру, возвращаемому функцией bytesFree().
Возвращает -1, если объект QStorageInfo не действителен.
См. также bytesTotal() и bytesFree().
qint64 QStorageInfo::bytesFree() const
Возвращает количество свободных байтов в томе. Обратите внимание, что если на файловой системе существуют квоты, это значение может быть больше, чем значение, возвращаемое функцией bytesAvailable().
Возвращает -1, если объект QStorageInfo не действителен.
См. также bytesTotal() и bytesAvailable().
qint64 QStorageInfo::bytesTotal() const
Возвращает общий размер тома в байтах.
Возвращает -1, если объект QStorageInfo не действителен.
См. также bytesFree() и bytesAvailable().
QByteArray QStorageInfo::device() const
Возвращает устройство для этого тома.
Например, в Unix-файловых системах (включая macOS), это возвращает devpath, например /dev/sda0 для локальных хранилищ. В Windows возвращает UNC-путь, начинающийся с \\\\?\\ для локальных хранилищ (иными словами, GUID тома).
См. также rootPath() и subvolume().
QString QStorageInfo::displayName() const
Возвращает имя тома, если оно доступно, или корневой путь, если нет.
QByteArray QStorageInfo::fileSystemType() const
Возвращает имя типа файловой системы.
Эта функция зависит от платформы, и имена файловых систем могут различаться в разных операционных системах. Например, в Windows они могут называться NTFS, а в Linux — ntfs-3g или fuseblk.
См. также name().
bool QStorageInfo::isReadOnly() const
Возвращает true, если текущая файловая система защищена от записи; в противном случае — false.
bool QStorageInfo::isReady() const
Возвращает true, если текущая файловая система готова к работе; в противном случае — false. Например, false возвращается, если диск CD не вставлен.
Обратите внимание, что fileSystemType(), name(), bytesTotal(), bytesFree() и bytesAvailable() будут возвращать недопустимые данные до тех пор, пока том не будет готов.
См. также isValid().
bool QStorageInfo::isRoot() const
Возвращает true, если данный объект QStorageInfo представляет корневой том системы; в противном случае — false.
В Unix-файловых системах корневой том — это том, смонтированный на /. В Windows корневой том — это том, на котором установлена ОС.
См. также root().
bool QStorageInfo::isValid() const
Возвращает true, если QStorageInfo, указанный параметром rootPath, существует и правильно смонтирован.
См. также isReady().
[static] QList<QStorageInfo> QStorageInfo::mountedVolumes()
Возвращает список объектов QStorageInfo, соответствующих списку текущих смонтированных файловых систем.
В Windows это возвращает список дисков, отображаемых в папке Мой компьютер. В Unix-системах это возвращает список всех смонтированных файловых систем (за исключением псевдофайловых систем).
По умолчанию возвращает все текущие смонтированные файловые системы.
Пример показывает, как получить все доступные файловые системы, пропустив те, которые только для чтения.
foreach (const QStorageInfo &storage, QStorageInfo::mountedVolumes()) {
if (storage.isValid() && storage.isReady()) {
if (!storage.isReadOnly()) {
// ...
}
}
} См. также root().
QString QStorageInfo::name() const
Возвращает имя файловой системы, читаемое человеком, обычно называемое label.
Не все файловые системы поддерживают эту функцию. В этом случае возвращаемое значение этого метода может быть пустым. Возвращается пустая строка, если файловая система не поддерживает метки или если метка не задана.
В Linux для получения метки тома требуется, чтобы udev был присутствующим в системе.
См. также fileSystemType().
void QStorageInfo::refresh()
Сбрасывает внутренший кэш QStorageInfo.
QStorageInfo кэширует информацию о хранилище для повышения производительности. QStorageInfo получает информацию во время создания объекта и/или при вызове метода setPath(). Для обновления информации о хранилище необходимо вручную сбросить кэш, вызвав эту функцию.
[static] QStorageInfo QStorageInfo::root()
Возвращает объект QStorageInfo, представляющий корневой том системы.
В Unix-системах этот вызов возвращает корневой ('/') том; в Windows — том, на котором установлена операционная система.
См. также isRoot().
QString QStorageInfo::rootPath() const
Возвращает точку монтирования файловой системы, которую представляет этот объект QStorageInfo.
В Windows возвращает букву тома, если том не смонтирован в каталог.
Обратите внимание, что значение, возвращаемое rootPath(), является реальной точкой монтирования тома и может не совпадать со значением, переданным в конструктор или метод setPath(). Например, если в системе есть только корневой том, и вы передаете '/directory' в setPath(), то этот метод вернет '/'.
См. также setPath() и device().
void QStorageInfo::setPath(const QString &path)
Устанавливает этот объект QStorageInfo на файловую систему, смонтированную там, где находится path.
path может быть корневым путем файловой системы, каталогом или файлом внутри этой файловой системы.
См. также rootPath().
QByteArray QStorageInfo::subvolume() const
Возвращает имя подтома для данного тома.
Некоторые типы файловых систем позволяют несколько подтомов внутри одного устройства, которые могут быть смонтированы в разных путях. Если подтом может быть обнаружен, он возвращается здесь. Формат имени подтома специфичен для каждого типа файловой системы.
Если данный том не смонтирован из подтома большего файлового устройства или если подтом не может быть обнаружен, эта функция возвращает пустой массив байтов.
Эта функция была добавлена в Qt 5.9.
См. также device().
void QStorageInfo::swap(QStorageInfo &other)
Меняет местами информацию о данном томе с other. Эта функция очень быстрая и никогда не терпит неудачу.
QStorageInfo &QStorageInfo::operator=(const QStorageInfo &other)
Создаёт копию объекта QStorageInfo other и присваивает её данному объекту QStorageInfo.
QStorageInfo &QStorageInfo::operator=(QStorageInfo &&other)
Присваивает other экземпляру QStorageInfo.
Связанные нечленные функции
bool operator!=(const QStorageInfo &first, const QStorageInfo &second)
Возвращает true, если объект first QStorageInfo ссылается на другой диск или том, чем second; в противном случае возвращает false.
bool operator==(const QStorageInfo &first, const QStorageInfo &second)
Возвращает true, если объект first QStorageInfo ссылается на тот же диск или том, что и second; в противном случае возвращает false.
Обратите внимание, что результат сравнения двух недопустимых объектов QStorageInfo всегда положительный.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/archives/qt-5.11/qstorageinfo.html