class QStorageInfo#

提供有关当前已安装存储和驱动器的信息。 更多

摘要#

方法#

静态函数#

本文档可能包含自动从C++翻译到Python的代码片段。我们始终欢迎对片段翻译的贡献。如果您发现翻译中的问题,也可以通过在https:/bugreports.qt.io/projects/PYSIDE上创建票据来告知我们

详细描述#

警告

本节包含自动从C++翻译到Python的代码片段,可能存在错误。

允许检索有关卷空间的、其挂载点、标签和文件系统名称的信息。

您可以通过将卷挂载点的路径传递给构造函数作为参数来创建 QStorageInfo 的一个实例,或者您可以使用 setPath() 方法来设置它。可以使用静态方法 mountedVolumes() 来获取所有挂载文件系统的列表。

QStorageInfo 总是缓存检索到的信息,但您可以调用 refresh() 以使缓存无效。

以下示例检索系统根卷的最常见信息,并打印相关信息。

storage = QStorageInfo.root()
print(storage.rootPath())
if storage.isReadOnly():
    print("isReadOnly:", storage.isReadOnly())
print("name:", storage.name())
print("fileSystemType:", storage.fileSystemType())
print("size:", storage.bytesTotal()/1000/1000, "MB")
print("availableSize:", storage.bytesAvailable()/1000/1000, "MB")
__init__(dir)#
参数:

dirQDir

创建一个新的 QStorageInfo 对象,该对象提供了包含 dir 文件夹的卷的信息。

__init__(other)
参数:

otherQStorageInfo

创建一个新的 QStorageInfo 对象,它是 other QStorageInfo 对象的副本。

__init__(path)
参数:

path – str

警告

本节包含自动从C++翻译到Python的代码片段,可能存在错误。

创建一个新的 QStorageInfo 对象,该对象提供了挂载于 path 的卷的信息。

如果你传递一个目录或文件,QStorageInfo 对象将指向包含此目录或文件的卷。你可以使用 isValid() 方法来检查创建的对象是否正确。

以下示例演示了如何获取应用程序所在的卷。建议始终检查卷是否已准备好且有效。

storage = QStorageInfo(qApp.applicationDirPath())
if storage.isValid() and storage.isReady():
    # ...

另请参阅

setPath()

__init__()

创建一个空的 QStorageInfo 对象。

使用默认构造函数创建的对象将是无效的,因此不适合使用。

blockSize()#
返回类型:

int

返回该文件系统的最佳传输块大小。

如果QStorageInfo无法确定大小或此类对象无效,则返回-1。

bytesAvailable()#
返回类型:

int

返回当前用户可用的大小(以字节为单位)。如果用户是root用户或系统管理员,则返回总大小。

此大小可能小于或等于由bytesFree()函数返回的空闲大小。

如果QStorageInfo对象无效,则返回-1。

另请参阅

bytesTotal() bytesFree()

bytesFree()#
返回类型:

int

返回卷中的空闲字节数。注意,如果文件系统存在配额,此值可以大于bytesAvailable()函数返回的值。

如果QStorageInfo对象无效,则返回-1。

bytesTotal()#
返回类型:

int

返回总的卷大小(以字节为单位)。

如果QStorageInfo对象无效,则返回-1。

device()#
返回类型:

QByteArray

返回此卷的设备。

例如,在Unix文件系统(包括macOS)中,此函数返回本地存储的devpath,如/dev/sda0。在Windows上,它返回以\\\\?\\开始的UNC路径,用于本地存储(换句话说,卷GUID)。

另请参阅

rootPath() subvolume()

displayName()#
返回类型:

str

如果可用,则返回卷的名称,否则返回根路径。

fileSystemType()#
返回类型:

QByteArray

返回文件系统的类型名称。

这是一个与平台相关的函数,文件系统名称在不同操作系统之间可能不同。例如,在Windows上文件系统可能命名为 NTFS,而在Linux上可能命名为 ntfs-3gfuseblk

另请参阅

name()

isReadOnly()#
返回类型:

bool

如果当前文件系统被保护免于写入,则返回 true;否则返回 false。

isReady()#
返回类型:

bool

如果当前文件系统能够准备使用,则返回 true;否则返回 false。例如,如果未插入光盘卷,则返回 false。

请注意,直到卷准备就绪,fileSystemType()name()bytesTotal()bytesFree()bytesAvailable() 将返回无效数据。

另请参阅

isValid()

isRoot()#
返回类型:

bool

如果这个 QStorageInfo 代表系统根卷,则返回 true;否则返回 false。

在Unix文件系统中,根卷是在 / 上挂载的卷。在Windows上,根卷是安装操作系统的卷。

另请参阅

root()

isValid()#
返回类型:

bool

如果由 rootPath 指定的 QStorageInfo 存在且正确挂载,则返回 true。

另请参阅

isReady()

静态 mountedVolumes()#
返回类型:

包含 QStorageInfo

警告

本节包含自动从C++翻译到Python的代码片段,可能存在错误。

返回与当前已挂载文件系统列表对应的 QStorageInfo 对象列表。

在Windows上,它返回 我的电脑 文件夹中可见的驱动器。在Unix操作系统上,它返回所有挂载的文件系统列表(不包括伪文件系统)。

默认情况下返回所有已挂载的文件系统。

本示例演示如何检索所有可用的文件系统,跳过只读的文件系统。

for storage in QStorageInfo.mountedVolumes():
    if storage.isValid() and storage.isReady():
        if not storage.isReadOnly():
            # ...

另请参阅

root()

name()#
返回类型:

str

返回文件系统的可读名称,通常称为 label

并非所有文件系统都支持此功能。在这种情况下,此方法返回的值可能为空。如果文件系统不支持标签,或者没有设置标签,则返回空字符串。

在Linux上,检索卷标签需要系统中存在 udev

另请参阅

fileSystemType()

__ne__(second)#
参数:

secondQStorageInfo

返回类型:

bool

如果 first QStorageInfo 对象指向与 second 不同的驱动器或卷,则返回 true;否则返回 false。

__eq__(second)#
参数:

secondQStorageInfo

返回类型:

bool

如果 first QStorageInfo 对象指向与 second 相同的驱动器或卷,则返回 true;否则返回 false。

请注意,比较两个无效的 QStorageInfo 对象的结果始终为正数。

refresh()#

重置 QStorageInfo 的内部缓存。

QStorageInfo 缓存有关存储信息以加快性能。 QStorageInfo 在对象构造期间或在调用 setPath() 方法时检索信息。您必须手动通过调用此函数来重置缓存以更新存储信息。

static root()#
返回类型:

QStorageInfo

返回一个代表系统根卷的 QStorageInfo 对象。

在 Unix 系统上,此调用返回根('/')卷;在 Windows 上,返回安装操作系统的卷。

另请参阅

isRoot()

rootPath()#
返回类型:

str

返回由 QStorageInfo 对象表示的文件系统的挂载点。

在Windows上,如果卷未挂载到目录中,它返回卷标识符。

请注意,rootPath() 返回的值是卷的真实挂载点,可能不等于传递给构造函数或 setPath() 方法的值。例如,如果您系统中只有一个根卷,并将 '/directory' 传递给 setPath() 方法,那么这个方法将返回 '/'。

另请参阅

setPath() device()

setPath(path)#
参数:

path – str

将此 QStorageInfo 对象设置到挂载位位于 path 的文件系统。

path 可以是文件系统的根路径,一个目录,或者在该文件系统中的一个文件。

另请参阅

rootPath()

subvolume()#
返回类型:

QByteArray

返回此卷的子卷名称。

某些文件系统类型允许设备内存在多个子卷,这些子卷可能挂载在不同的路径上(例如 Unix 上的 'bind' 挂载,或 Btrfs 文件系统的子卷)。如果检测到子卷,此函数将返回其名称。子卷名称的格式因文件系统类型而异。

如果此卷不是从更大文件系统的子卷挂载,或者无法检测到子卷,则此函数返回一个空的字节数组。

另请参阅

device()

swap(other)#
参数:

otherQStorageInfo

other 交换此卷信息。此函数非常快,绝不会失败。