Класс QStorageInfo
Предоставляет информацию о текущих смонтированных хранилищах и дисках. Подробнее...
| Заголовок: | #include <QStorageInfo> |
| qmake: | QT += core |
| С момента: | Qt 5.4 |
Этот класс был представлен в Qt 5.4.
Открытые функции
| QStorageInfo(const QStorageInfo &other) | |
| QStorageInfo(const QDir &dir) | |
| QStorageInfo(const QString &path) | |
| QStorageInfo() | |
| QStorageInfo & | operator=(QStorageInfo &&other) |
| QStorageInfo & | operator=(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) |
Статические открытые члены
| 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(const QStorageInfo &other)
Создаёт новый объект QStorageInfo, являющийся копией объекта QStorageInfo other.
QStorageInfo::QStorageInfo(const QDir &dir)
Создаёт новый объект QStorageInfo, который содержит информацию о томе, содержащем папку dir.
QStorageInfo::QStorageInfo(const QString &path)
Создаёт новый объект QStorageInfo, который содержит информацию о томе, смонтированном по адресу path.
Если вы передаёте каталог или файл, объект QStorageInfo будет ссылаться на том, на котором расположен этот каталог или файл. Вы можете проверить, является ли созданный объект корректным, используя метод isValid().
Следующий пример показывает, как получить том, на котором находится приложение. Рекомендуется всегда проверять, готов и корректен ли том.
QStorageInfo storage(qApp->applicationDirPath());
if (storage.isValid() && storage.isReady()) {
// ...
} См. также setPath().
QStorageInfo::QStorageInfo()
Создаёт пустой объект QStorageInfo.
Объекты, созданные с помощью конструктора по умолчанию, будут некорректны и, следовательно, не готовы к использованию.
См. также setPath(), isReady() и isValid().
QStorageInfo &QStorageInfo::operator=(QStorageInfo &&other)
Присваивает other этому экземпляру QStorageInfo.
QStorageInfo &QStorageInfo::operator=(const QStorageInfo &other)
Создаёт копию объекта QStorageInfo other и присваивает её этому объекту QStorageInfo.
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. Эта функция очень быстрая и никогда не терпит неудачу.
Связанные нечлен-функции
bool operator!=(const QStorageInfo &first, const QStorageInfo &second)
Возвращает true, если первый объект QStorageInfo ссылается на другой диск или том, чем второй; в противном случае возвращает false.
bool operator==(const QStorageInfo &first, const QStorageInfo &second)
Возвращает true, если первый объект QStorageInfo ссылается на тот же диск или том, что и второй; в противном случае возвращает false.
Обратите внимание, что результат сравнения двух невалидных объектов QStorageInfo всегда положительный.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.15/qstorageinfo.html