Класс 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, если указанный объектом rootPath QStorageInfo существует и правильно смонтирован.
См. также 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 QStorageInfo::operator!=(const QStorageInfo &first, const QStorageInfo &second)
Возвращает true, если объект first QStorageInfo ссылается на другой диск или том, чем second; в противном случае возвращает false.
bool QStorageInfo::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.13/qstorageinfo.html