Класс 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) |
| 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) это возвращает путь к устройству, например /dev/sda0 для локальных хранилищ. В Windows возвращает UNC-путь, начинающийся с \\\\?\\ для локальных хранилищ (другими словами, GUID тома).
См. также rootPath().
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().
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.6/qstorageinfo.html