Класс 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/qt-5.9/qstorageinfo.html