QStorageInfo 类
提供有关当前挂载的存储设备和驱动器的信息。 更多...
头文件 | #include <QStorageInfo> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Core) target_link_libraries(mytarget PRIVATE Qt6::Core) |
qmake | QT += core |
- 所有成员列表,包括继承成员
- QStorageInfo 是 输入/输出和网络 以及 隐式共享类 的一部分。
公共函数
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对象,它是other QStorageInfo对象的副本。
[exception不抛出]
QStorageInfo::~QStorageInfo()
销毁QStorageInfo对象并释放其资源。
int QStorageInfo::blockSize() const
返回此文件系统的最佳传输块大小。
如果QStorageInfo无法确定大小或对象无效,则返回-1。
qint64 QStorageInfo::bytesAvailable() const
返回当前用户可用的字节数。如果当前用户是root用户或系统管理员,它返回可用总大小。
此大小可能小于或等于由bytesFree()函数返回的可用大小。
如果QStorageInfo对象无效,返回-1。
另请参阅bytesTotal() 和 bytesFree()。
qint64 QStorageInfo::bytesFree() const
返回卷中空闲字节数。注意,如果有磁盘配额,此值可能会大于bytesAvailable()返回的值。
如果QStorageInfo对象无效,返回-1。
另见 bytesTotal() 和 bytesAvailable。
qint64 QStorageInfo::bytesTotal() const
返回以字节为单位的总卷大小。
如果QStorageInfo对象无效,返回-1。
另见 bytesFree 和 bytesAvailable。
QByteArray QStorageInfo::device() const
返回此卷的设备。
例如,在Unix文件系统(包括macOS)中,对于本地存储,它返回类似于 /dev/sda0
的devpath。在Windows中,对于本地存储,它返回以 \\\\?\\
开头的UNC路径(换句话说,卷的GUID)。
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。例如,如果光盘卷未插入,则返回假。
请注意,直到卷就绪为止,fileSystemType、name、bytesTotal、bytesFree 和 bytesAvailable 将返回无效数据。
另见 isValid。
bool QStorageInfo::isRoot() const
如果此QStorageInfo 表示系统根卷,则返回true;否则返回false。
在Unix文件系统中,根卷是挂载在 /
上的卷。在Windows中,根卷是安装操作系统的卷。
另见 root。
bool QStorageInfo::isValid() const
如果由 rootPath 指定的 QStorageInfo 存在并且已正确挂载,则返回true。
另见 isReady。
[静态]
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
返回文件系统的可读名称,通常称为 标签
。
并非所有文件系统都支持此功能。在这种情况下,此方法返回的值可能为空。如果文件系统不支持标签,或者未设置标签,将返回空字符串。
在 Linux 上,检索卷标签需要系统中存在 udev
。
另请参阅fileSystemType()。
void QStorageInfo::refresh()
重置 QStorageInfo 的内部缓存。
QStorageInfo 缓存有关存储的信息以加快性能。在对象构造期间和/或将调用 setPath() 方法时检索信息。您必须通过调用此函数来手动重置缓存以更新存储信息。
[静态]
QStorageInfo QStorageInfo::root()
返回一个表示系统根卷的 QStorageInfo 对象。
在 Unix 系统中,该调用返回根 ('/') 卷;在 Windows 上,表示安装操作系统的卷。
另请参阅isRoot()。
QString QStorageInfo::rootPath() const
返回此 QStorageInfo 对象表示的文件系统的挂载点。
在 Windows 上,如果卷未挂载到目录,则返回卷盘符。
请注意,rootPath() 返回的值是卷的实际挂载点,可能不等于传递给构造函数或 setPath() 方法的值。例如,如果您系统中只有一个根卷,并将 '/directory' 传递给 setPath(),则此方法将返回 '/'。
void QStorageInfo::setPath(const QString &path)
将此 QStorageInfo 对象设置为指定的 path 所在的已挂载文件系统。
path 可以是文件系统的根路径、目录或该文件系统中文件。
另请参阅rootPath()。
QByteArray QStorageInfo::subvolume() const
返回此卷的子卷名称。
一些文件系统类型允许在一个设备内部有多个子卷,这些子卷可以挂载在不同的路径(例如 Unix 上的 'bind' 挂载或 Btrfs 文件系统子卷)。如果检测到了子卷,该函数将返回其名称。子卷名称的格式针对每种文件系统类型都是特定的。
如果此卷不是从更大的文件系统的子卷挂载,或者无法检测到子卷,则此函数返回一个空字节数组。
另请参阅device()。
[noexcept]
void QStorageInfo::swap(QStorageInfo &other)
与 other 交换此卷信息。此函数非常快速且决不会失败。
QStorageInfo &QStorageInfo::operator=(const QStorageInfo &other)
创建一个副本,将 QStorageInfo 对象 other 赋值给当前的 QStorageInfo 对象。
[noexcept]
QStorageInfo &QStorageInfo::operator=(QStorageInfo &&other)
将 other 赋值给当前的 QStorageInfo 实例。
相关非成员函数
bool operator!=(const QStorageInfo &first, const QStorageInfo &second)
如果 first 的 QStorageInfo 对象引用了与 second 不同的驱动器或卷,则返回 true;否则返回 false。
bool operator==(const QStorageInfo &first, const QStorageInfo &second)
如果 first 的 QStorageInfo 对象引用了与 second 相同的驱动器或卷,则返回 true;否则返回 false。
请注意,比较两个无效的 QStorageInfo 对象的结果始终为正数。
© 2024 Qt 公司。此文档的贡献属于其各自的所有者。此文档受 GNU 自由文档许可版本 1.3 的条款约束,由自由软件基金会发布。Qt 及相关徽标是芬兰以及世界其他地区的 Qt 公司的商标。所有其他商标均属于其各自的所有者。