PySide6.QtCore.QDir

class QDir

QDir 类提供了对目录结构及其内容的访问。更多

概要

方法

静态函数

注意

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

详细描述

警告

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

一个QDir用于操作路径名称,访问有关路径和文件的信息,并操作底层文件系统。它还可以用于访问Qt的资源系统

Qt 使用“/”作为通用目录分隔符,就像在 URL 中使用“/”作为路径分隔符一样。如果你总是使用“/”作为目录分隔符,Qt 会将你的路径转换为符合底层操作系统的格式。

一个 QDir 可以使用相对路径或绝对路径指向一个文件。绝对路径以目录分隔符开头(在Windows下可能前面有一个驱动器说明)。相对文件名以目录名或文件名开头,并指定相对于当前目录的路径。

绝对路径的示例:

QDir("/home/user/Documents")
QDir("C:/Users")

在Windows上,上面的第二个示例在用于访问文件时将被翻译为C:\Users

相对路径的示例:

QDir("images/landscape.png")

你可以使用isRelative()isAbsolute()函数来检查QDir是否使用相对或绝对文件路径。调用makeAbsolute()将相对QDir转换为绝对路径。

注意

以冒号(:)开头的路径始终被视为绝对路径,因为它们表示一个QResource

文件和目录内容

目录包含多个条目,代表文件、目录和符号链接。目录中的条目数量由count()返回。可以使用entryList()获取目录中所有条目名称的字符串列表。如果需要每个条目的信息,请使用entryInfoList()获取QFileInfo对象的列表。

可以使用filePath()absoluteFilePath()来构建目录内文件和目录的路径。filePath()函数返回指定文件或目录相对于QDir对象路径的相对路径;absoluteFilePath()返回指定文件或目录的绝对路径。这些函数都不会检查文件或目录是否存在;它们仅构建路径。

directory = QDir("Documents/Letters")
path = directory.filePath("contents.txt")
absolutePath = directory.absoluteFilePath("contents.txt")

文件可以通过使用remove()函数来删除。目录不能像文件一样删除;请使用rmdir()来删除它们。

可以通过对QDir对象应用过滤器来减少entryList()entryInfoList()返回的条目数量。您可以应用名称过滤器来指定文件名需要匹配的通配符模式,应用属性过滤器来选择条目的属性并区分文件和目录,以及应用排序顺序。

名称过滤器是传递给setNameFilters()的字符串列表。属性过滤器由Filters的按位或组合组成,这些在调用setFilter()时指定。排序顺序使用setSorting()SortFlags的按位或组合来指定。

你可以使用match()函数来测试文件名是否匹配过滤器。

在调用entryList()entryInfoList()时,也可以指定过滤和排序标志,以覆盖之前定义的行为。

当前目录和其他特殊路径

提供了一些静态函数来访问一些常见目录,这些函数返回QDir对象。还有一些相应的函数返回字符串:

QDir

QString

返回值

current()

currentPath()

应用程序的工作目录

home()

homePath()

用户的主目录

root()

rootPath()

根目录

temp()

tempPath()

系统的临时目录

setCurrent() 静态函数也可以用于设置应用程序的工作目录。

如果你想找到包含应用程序可执行文件的目录,请参阅applicationDirPath()

drives() 静态函数提供了包含文件系统的每个设备的根目录列表。在 Unix 系统上,这将返回包含单个根目录“/”的列表;在 Windows 上,列表通常包含 C:/,可能还包含其他驱动器字母,如 D:/,具体取决于用户系统的配置。

路径操作和字符串

包含“.”元素的路径,这些元素引用路径中该点的当前目录,“..”元素引用父目录,以及符号链接,可以使用canonicalPath()函数简化为规范形式。

路径也可以通过使用cleanPath()来简化,以去除多余的“/”和“..”元素。

有时需要能够以用户平台的原生表示形式显示路径。静态函数 toNativeSeparators() 返回指定路径的副本,其中每个目录分隔符都被替换为底层操作系统的适当分隔符。

示例

检查目录是否存在:

dir = QDir("example")
if not dir.exists():
    qWarning("Cannot find the example directory")

(我们也可以使用其中一个静态便捷函数 exists()exists()。)

遍历目录并读取文件:

dir = QDir.root() # "/"()
if not dir.cd("tmp"): # "/tmp"
    qWarning("Cannot find the \"/tmp\" directory")
else:
    QFile file(dir.filePath("ex1.txt")) # "/tmp/ex1.txt"
    if not file.open(QIODevice.ReadWrite):
        qWarning("Cannot create the file %s", file.name())

一个列出当前目录中所有文件(不包括符号链接)的程序,按大小排序,最小的排在前面:

from PySide6.QtCore import QDir

if __name__ == "__main__":

    app = QCoreApplication(argc, argv)
    dir = QDir()
    dir.setFilter(QDir.Files | QDir.Hidden | QDir.NoSymLinks)
    dir.setSorting(QDir.Size | QDir.Reversed)
    list = dir.entryInfoList()
    print(" Bytes Filename")
    for i in range(0, list.size()):
        fileInfo = list.at(i)
        print(qPrintable(QString("%1 %2").arg(fileInfo.size(), 10))
                                                .arg(fileInfo.fileName()))
        std::cout << std::endl

    return 0

平台特定问题

在Android上,处理内容URI时有一些限制:

另请参阅

QFileInfo QFile applicationDirPath() 获取 更多 示例

class Filter

(继承自 enum.Flag) 此枚举描述了可用于 QDir 的过滤选项;例如,用于 entryList()entryInfoList()。通过使用按位 OR 运算符组合以下列表中的值来指定过滤值:

常量

描述

QDir.Dirs

列出符合过滤条件的目录。

QDir.AllDirs

列出所有目录;即不对目录名称应用过滤器。

QDir.Files

列出文件。

QDir.Drives

列出磁盘驱动器(在Unix下忽略)。

QDir.NoSymLinks

不列出符号链接(不支持符号链接的操作系统将忽略此选项)。

QDir.NoDotAndDotDot

不列出特殊条目“.”和“..”。

QDir.NoDot

不列出特殊条目“.”。

QDir.NoDotDot

不列出特殊条目“..”。

QDir.AllEntries

列出目录、文件、驱动器和符号链接(除非指定System,否则不会列出损坏的符号链接)。

QDir.Readable

列出应用程序具有读取权限的文件。Readable 值需要与 Dirs 或 Files 结合使用。

QDir.Writable

列出应用程序具有写访问权限的文件。Writable 值需要与 Dirs 或 Files 结合使用。

QDir.Executable

列出应用程序具有执行访问权限的文件。Executable 值需要与 Dirs 或 Files 结合使用。

QDir.Modified

仅列出已修改的文件(在Unix上忽略)。

QDir.Hidden

列出隐藏文件(在Unix上,以“.”开头的文件)。

QDir.System

列出系统文件(在Unix上,包括FIFO、套接字和设备文件;在Windows上,包括.lnk文件)

QDir.CaseSensitive

过滤器应区分大小写。

使用Filter枚举值来过滤文件和目录列表的函数将包括指向文件和目录的符号链接,除非你设置了NoSymLinks值。

默认构造的QDir不会根据文件的权限过滤文件,因此entryList()entryInfoList()将返回所有可读、可写、可执行或这三者的任意组合的文件。这使得默认设置易于编写,同时也非常有用。

例如,设置ReadableWritableFiles标志允许列出应用程序具有读取权限、写入权限或两者兼具的所有文件。如果在此组合中还包含DirsDrives标志,则可以列出所有驱动器、目录、应用程序可以读取、写入或执行的所有文件,以及指向这些文件/目录的符号链接。

要检索目录的权限,请使用entryInfoList()函数获取相关的QFileInfo对象,然后使用permissions()获取每个文件的权限和所有权。

class SortFlag

(继承自 enum.Flag)此枚举描述了可用于 QDir 的排序选项,例如用于 entryList()entryInfoList()。排序值通过将以下列表中的值进行 OR 运算来指定:

常量

描述

QDir.Name

按名称排序。

QDir.Time

按时间排序(修改时间)。

QDir.Size

按文件大小排序。

QDir.Type

按文件类型(扩展名)排序。

QDir.Unsorted

不排序。

QDir.NoSort

默认不排序。

QDir.DirsFirst

将目录放在前面,然后是文件。

QDir.DirsLast

先显示文件,再显示目录。

QDir.Reversed

反转排序顺序。

QDir.IgnoreCase

不区分大小写排序。

QDir.LocaleAware

使用当前区域设置适当地排序项目。

你只能指定前四个中的一个。

如果你同时指定了DirsFirst和Reversed,目录仍然会排在前面,但是以相反的顺序;文件将在目录之后列出,同样以相反的顺序。

__init__(dir)
Parameters:

dirQDir

构造一个QDir对象,该对象是目录dirQDir对象的副本。

另请参阅

operator=()

__init__([path=""])
Parameters:

路径 – 字符串

构造一个指向给定目录 pathQDir。如果路径为空,则使用程序的当前工作目录(“.”)。

另请参阅

currentPath()

__init__(path, nameFilter[, sort=QDir.SortFlags(QDir.SortFlag.Name | QDir.SortFlag.IgnoreCase)[, filter=QDir.Filter.AllEntries]])
Parameters:
  • path – 字符串

  • nameFilter – str

  • sortSortFlag 的组合

  • filterFilter 的组合

使用路径 path 构造一个 QDir,通过 nameFilter 按名称过滤条目,并通过 filters 按属性过滤条目。它还使用 sort 对名称进行排序。

默认的 nameFilter 是一个空字符串,它不排除任何内容;默认的 filtersAllEntries,它也不排除任何内容。默认的 sortName | IgnoreCase,即按名称不区分大小写排序。

如果 path 是空字符串,QDir 使用“.”(当前目录)。如果 nameFilter 是空字符串,QDir 使用名称过滤器“*”(所有文件)。

注意

path 不需要存在。

__reduce__()
Return type:

字符串

absoluteFilePath(fileName)
Parameters:

fileName – str

Return type:

字符串

返回目录中文件的绝对路径名。检查文件是否实际存在于目录中;但请参阅exists()fileName中的冗余多个分隔符或“.”和“..”目录不会被移除(请参阅cleanPath())。

absolutePath()
Return type:

字符串

返回绝对路径(以“/”或驱动器规范开头的路径),该路径可能包含符号链接,但从不包含冗余的“.”、“..”或多个分隔符。

static addSearchPath(prefix, path)
Parameters:
  • prefix – str

  • path – 字符串

path添加到prefix的搜索路径中。

另请参阅

setSearchPaths()

canonicalPath()
Return type:

字符串

警告

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

返回规范路径,即没有符号链接或冗余的“.”或“..”元素的路径。

在没有符号链接的系统上,此函数将始终返回与absolutePath()相同的字符串。如果规范路径不存在(通常是由于悬空的符号链接),canonicalPath() 将返回一个空字符串。

示例:

bin = "/local/bin" # where /local/bin is a symlink to /usr/bin
binDir = QDir(bin)
canonicalBin = binDir.canonicalPath()
# canonicalBin now equals "/usr/bin"
ls = "/local/bin/ls" # where ls is the executable "ls"
lsDir = QDir(ls)
canonicalLs = lsDir.canonicalPath()
# canonicalLS now equals "/usr/bin/ls".
cd(dirName)
Parameters:

dirName – str

Return type:

布尔

QDir的目录更改为dirName

如果新目录存在,则返回true;否则返回false。请注意,如果新目录不存在,则不会执行逻辑上的cd()操作。

调用 cd(“..”) 相当于调用 cdUp()

cdUp()
Return type:

布尔

通过从QDir的当前目录向上移动一个目录来更改目录。

如果新目录存在,则返回true;否则返回false。请注意,如果新目录不存在,则不会执行逻辑上的cdUp()操作。

注意

在Android上,内容URI不支持此功能。有关更多信息,请参阅DocumentFile.getParentFile()

static cleanPath(path)
Parameters:

路径 – 字符串

Return type:

字符串

返回path,其中目录分隔符已标准化(即平台本机分隔符转换为“/”)并删除了冗余的分隔符,以及“.”和“..”已尽可能解析。

符号链接被保留。此函数不返回规范路径,而是返回输入的最简单版本。例如,“./local”变为“local”,“local/../bin”变为“bin”,“/local/usr/../bin”变为“/local/bin”。

count()
Return type:

整数

返回目录中的目录和文件的总数。

等同于 entryList() .count()。

注意

在Qt 6.5之前的版本中,此函数返回的是uint,而不是qsizetype

另请参阅

operator[]() entryList()

static current()
Return type:

QDir

返回应用程序的当前目录。

该目录是使用当前目录的绝对路径构建的,确保其path()将与其absolutePath()相同。

static currentPath()
Return type:

字符串

返回应用程序当前目录的绝对路径。当前目录是最后通过setCurrent()设置的目录,如果从未调用过该函数,则为父进程启动此应用程序时的目录。

dirName()
Return type:

字符串

返回目录的名称;这与路径不同,例如,名称为“mail”的目录可能具有路径“/var/spool/mail”。如果目录没有名称(例如,它是根目录),则返回空字符串。

不会进行检查以确保具有此名称的目录实际存在;但请参阅exists()

static drives()
Return type:

QFileInfo的列表

返回此系统上的根目录列表。

在Windows上,这将返回一个包含“C:/”、“D:/”等的QFileInfo对象列表。这不返回带有可弹出媒体但为空的驱动器。在其他操作系统上,它返回仅包含一个根目录(即“/”)的列表。

另请参阅

root() rootPath()

entryInfoList([filters=QDir.Filter.NoFilter[, sort=QDir.SortFlag.NoSort]])
Parameters:
Return type:

QFileInfo的列表

这是一个重载函数。

返回目录中所有文件和目录的QFileInfo对象列表,根据之前使用setNameFilters()setFilter()设置的名称和属性过滤器进行排序,并根据使用setSorting()设置的标志进行排序。

可以使用filterssort参数来覆盖属性过滤和排序规范。

如果目录不可读、不存在或没有任何内容符合规范,则返回一个空列表。

entryInfoList(nameFilters[, filters=QDir.Filter.NoFilter[, sort=QDir.SortFlag.NoSort]])
Parameters:
  • nameFilters – 字符串列表

  • filtersFilter 的组合

  • sortSortFlag 的组合

Return type:

QFileInfo的列表

返回目录中所有文件和目录的QFileInfo对象列表,根据之前使用setNameFilters()setFilter()设置的名称和属性过滤器进行排序,并根据使用setSorting()设置的标志进行排序。

名称过滤器、文件属性过滤器和排序规范可以使用nameFiltersfilterssort参数进行覆盖。

如果目录不可读、不存在或没有任何内容符合规范,则返回一个空列表。

entryList([filters=QDir.Filter.NoFilter[, sort=QDir.SortFlag.NoSort]])
Parameters:
Return type:

字符串列表

这是一个重载函数。

返回目录中所有文件和目录名称的列表,根据之前使用setNameFilters()setFilter()设置的名称和属性过滤器进行排序,并根据使用setSorting()设置的标志进行排序。

可以使用filterssort参数来覆盖属性过滤和排序规范。

如果目录不可读、不存在或没有任何内容符合规范,则返回一个空列表。

注意

要列出指向不存在文件的符号链接,必须将System传递给过滤器。

entryList(nameFilters[, filters=QDir.Filter.NoFilter[, sort=QDir.SortFlag.NoSort]])
Parameters:
  • nameFilters – 字符串列表

  • filtersFilter 的组合

  • sortSortFlag 的组合

Return type:

字符串列表

返回目录中所有文件和目录名称的列表,根据之前使用setNameFilters()setFilter()设置的名称和属性过滤器进行排序,并根据使用setSorting()设置的标志进行排序。

名称过滤器、文件属性过滤器和排序规范可以使用nameFiltersfilterssort参数进行覆盖。

如果目录不可读、不存在或没有任何内容符合规范,则返回一个空列表。

exists()
Return type:

布尔

这是一个重载函数。

如果目录存在,则返回true;否则返回false。(如果找到同名的文件,此函数将返回false)。

接受参数的此函数的重载用于测试目录中是否存在文件和目录。

另请参阅

exists() exists()

exists(name)
Parameters:

name – str

Return type:

布尔

如果名为 name 的文件存在,则返回 true;否则返回 false。

除非 name 包含绝对文件路径,否则文件名假定为相对于目录本身,因此此函数通常用于检查目录中是否存在文件。

另请参阅

exists() exists()

filePath(fileName)
Parameters:

fileName – str

Return type:

字符串

返回目录中文件的路径名。检查文件是否实际存在于目录中;但请参阅exists()。如果QDir是相对的,返回的路径名也将是相对的。fileName中的冗余多个分隔符或“.”和“..”目录不会被移除(请参阅cleanPath())。

filter()
Return type:

Filter的组合

返回由setFilter()设置的值

另请参阅

setFilter()

static fromNativeSeparators(pathName)
Parameters:

pathName – str

Return type:

字符串

返回使用'/'作为文件分隔符的pathName。例如,在Windows上,fromNativeSeparators(”c:\\winnt\\system32")返回“c:/winnt/system32”。

返回的字符串可能与参数相同,例如在Unix操作系统上。

static home()
Return type:

QDir

返回用户的主目录。

该目录是使用主目录的绝对路径构建的,确保其path()将与其absolutePath()相同。

详情请参见homePath()

static homePath()
Return type:

字符串

警告

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

返回用户主目录的绝对路径。

在Windows系统下,此函数将返回当前用户配置文件的目录。通常,这是:

C:/Users/Username

使用 toNativeSeparators() 函数将分隔符转换为适合底层操作系统的分隔符。

如果当前用户配置文件的目录不存在或无法检索,将按以下顺序检查替代方案,直到找到存在且可用的路径:

  1. USERPROFILE环境变量指定的路径。

  2. 由连接HOMEDRIVEHOMEPATH环境变量形成的路径。

  3. HOME环境变量指定的路径。

  4. rootPath()函数返回的路径(该函数使用SystemDrive环境变量)

  5. C:/ 目录。

在非Windows操作系统上,如果存在HOME环境变量,则使用它,否则使用rootPath()返回的路径。

isAbsolute()
Return type:

布尔

如果目录的路径是绝对的,则返回true;否则返回false。参见isAbsolutePath()

注意

以冒号(:)开头的路径始终被视为绝对路径,因为它们表示一个QResource

static isAbsolutePath(path)
Parameters:

路径 – 字符串

Return type:

布尔

如果 path 是绝对路径,则返回 true;如果是相对路径,则返回 false

注意

以冒号(:)开头的路径始终被视为绝对路径,因为它们表示一个QResource

isEmpty([filters=QDir.Filters(QDir.Filter.AllEntries | QDir.Filter.NoDotAndDotDot)])
Parameters:

filtersFilter 的组合

Return type:

布尔

返回目录是否为空。

相当于带有过滤器 QDir::AllEntries | QDir::NoDotAndDotDotcount() == 0,但速度更快,因为它只检查目录是否至少包含一个条目。

注意

除非你将filters标志设置为包含QDir::NoDotAndDotDot(如默认值所做的那样),否则没有目录是空的。

isReadable()
Return type:

布尔

如果目录可读并且我们可以通过名称打开文件,则返回true;否则返回false

警告

此函数返回的假值并不能保证目录中的文件无法访问。

另请参阅

isReadable()

isRelative()
Return type:

布尔

如果目录路径是相对的,则返回 true;否则返回 false。(在 Unix 下,如果路径不以“/”开头,则路径是相对的)。

注意

以冒号(:)开头的路径始终被视为绝对路径,因为它们表示一个QResource

static isRelativePath(path)
Parameters:

路径 – 字符串

Return type:

布尔

如果 path 是相对的,则返回 true;如果是绝对的,则返回 false

注意

以冒号(:)开头的路径始终被视为绝对路径,因为它们表示一个QResource

isRoot()
Return type:

布尔

警告

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

如果目录是根目录,则返回true;否则返回false

注意

如果目录是根目录的符号链接,此函数返回 false。如果你想测试这种情况,请使用 canonicalPath(),例如。

dir = QDir("/tmp/root_link")
dir = dir.canonicalPath()
if dir.isRoot():
    qWarning("It is a root link")

另请参阅

root() rootPath()

static listSeparator()
Return type:

QChar

返回本机路径列表分隔符:在Unix下为‘:’,在Windows下为‘;’。

另请参阅

separator()

makeAbsolute()
Return type:

布尔

将目录路径转换为绝对路径。如果已经是绝对路径,则不进行任何操作。如果转换成功,返回true;否则返回false

static match(filter, fileName)
Parameters:
  • filter – str

  • fileName – str

Return type:

布尔

如果fileName匹配通配符(glob)模式filter,则返回true;否则返回falsefilter可以包含由空格或分号分隔的多个模式。匹配不区分大小写。

static match(filters, fileName)
Parameters:
  • filters – 字符串列表

  • fileName – str

Return type:

布尔

这是一个重载函数。

如果fileNamefilters列表中的任何通配符(glob)模式匹配,则返回true;否则返回false。匹配是大小写不敏感的。

mkdir(dirName)
Parameters:

dirName – str

Return type:

布尔

这是一个重载函数。

创建一个名为dirName的子目录,并赋予默认权限。

在POSIX系统上,默认是授予由umask允许的所有权限。在Windows上,新目录从其父目录继承其权限。

mkdir(dirName, permissions)
Parameters:
  • dirName – str

  • permissionsPermission 的组合

Return type:

布尔

创建一个名为 dirName 的子目录。

成功时返回 true;否则返回 false

如果调用此函数时目录已经存在,它将返回false

创建的目录权限设置为permissions

在POSIX系统上,权限受umask值的影响。

在Windows上,权限是使用ACL模拟的。当组被授予的权限少于其他组时,这些ACL可能处于非规范顺序。当打开属性对话框的安全选项卡时,具有此类权限的文件和目录将生成警告。授予组所有授予给其他组的权限可以避免此类警告。

另请参阅

rmdir()

mkpath(dirPath)
Parameters:

dirPath – str

Return type:

布尔

创建目录路径 dirPath

该函数将创建创建目录所需的所有父目录。

如果成功,返回 true;否则返回 false

如果调用此函数时路径已经存在,它将返回 true。

另请参阅

rmpath()

nameFilters()
Return type:

字符串列表

返回由setNameFilters()设置的字符串列表

另请参阅

setNameFilters()

static nameFiltersFromString(nameFilter)
Parameters:

nameFilter – str

Return type:

字符串列表

__ne__(rhs)
Parameters:

rhsQDir

Return type:

布尔

警告

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

如果目录 lhs 和目录 rhs 的路径不同或排序或筛选设置不同,则返回 true;否则返回 false

示例:

# The current directory is "/usr/local"
d1 = QDir("/usr/local/bin")
d1.setFilter(QDir.Executable)
d2 = QDir("bin")
if d1 != d2:
    qDebug("They differ")
__eq__(rhs)
Parameters:

rhsQDir

Return type:

布尔

警告

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

如果目录 lhs 和目录 rhs 的路径相同且它们的排序和筛选设置相同,则返回 true;否则返回 false

示例:

# The current directory is "/usr/local"
d1 = QDir("/usr/local/bin")
d2 = QDir("bin")
if d1 == d2:
    qDebug("They're the same")
operator(pos)
Parameters:

pos – 整数

Return type:

字符串

返回文件名列表中位置pos处的文件名。等同于entryList().at(index)。pos必须是列表中的有效索引位置(即0 <= pos < count())。

注意

在Qt 6.5之前的版本中,posint类型,而不是qsizetype类型。

另请参阅

count() entryList()

path()
Return type:

字符串

返回路径。这可能包含符号链接,但从不包含多余的“.”、“..”或多个分隔符。

返回的路径可以是绝对路径或相对路径(参见setPath())。

refresh()

刷新目录信息。

relativeFilePath(fileName)
Parameters:

fileName – str

Return type:

字符串

警告

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

返回相对于目录的fileName路径。

dir = QDir("/home/bob")
s = QString()
s = dir.relativeFilePath("images/file.jpg") # s is "images/file.jpg"
s = dir.relativeFilePath("/home/mary/file.txt") # s is "../mary/file.txt"
remove(fileName)
Parameters:

fileName – str

Return type:

布尔

删除文件,fileName

如果文件成功删除,则返回true;否则返回false

removeRecursively()
Return type:

布尔

删除目录,包括其所有内容。

如果成功则返回 true,否则返回 false。

如果无法删除文件或目录,removeRecursively() 会继续尝试删除尽可能多的文件和子目录,然后返回 false

如果目录已经被移除,该方法返回 true(预期结果已经达到)。

注意

此函数旨在删除应用程序内部的小目录(例如临时目录),而不是用户可见的目录。对于用户可见的操作,建议更精确地向用户报告错误,在出现错误时提供解决方案,在删除过程中显示进度,因为这可能需要几分钟等。

rename(oldName, newName)
Parameters:
  • oldName – str

  • newName – 字符串

Return type:

布尔

将文件或目录从oldName重命名为newName,如果成功则返回true;否则返回false

在大多数文件系统中,rename() 仅在 oldName 不存在或已存在具有新名称的文件时失败。然而,还有其他原因可能导致 rename() 失败。例如,在至少一个文件系统中,如果 newName 指向一个已打开的文件,rename() 也会失败。

如果 oldName 是一个文件(不是目录)且无法立即重命名,Qt 将尝试将 oldName 复制到 newName 并删除 oldName

另请参阅

rename()

rmdir(dirName)
Parameters:

dirName – str

Return type:

布尔

删除由dirName指定的目录。

目录必须为空才能使rmdir()成功。

如果成功,返回 true;否则返回 false

另请参阅

mkdir()

rmpath(dirPath)
Parameters:

dirPath – str

Return type:

布尔

移除目录路径 dirPath

该函数将删除dirPath中的所有父目录,前提是它们为空。这与mkpath(dirPath)相反。

如果成功,返回 true;否则返回 false

另请参阅

mkpath()

static root()
Return type:

QDir

返回根目录。

目录是使用根目录的绝对路径构建的,确保其path()将与其absolutePath()相同。

详情请参见rootPath()

static rootPath()
Return type:

字符串

返回根目录的绝对路径。

对于Unix操作系统,这将返回“/”。对于Windows文件系统,这通常返回“c:/”。

static searchPaths(prefix)
Parameters:

prefix – str

Return type:

字符串列表

返回prefix的搜索路径。

static separator()
Return type:

QChar

返回本机目录分隔符:在Unix下为“/”,在Windows下为“\”。

您不需要使用此函数来构建文件路径。如果您总是使用“/”,Qt 会将您的路径转换为符合底层操作系统的路径。如果您想使用用户操作系统的分隔符向用户显示路径,请使用 toNativeSeparators()

另请参阅

listSeparator()

static setCurrent(path)
Parameters:

路径 – 字符串

Return type:

布尔

警告

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

将应用程序的当前工作目录设置为path。如果目录成功更改,则返回true;否则返回false

absolute = "/local/bin"
relative = "local/bin"
absFile = QFileInfo(absolute)
relFile = QFileInfo(relative)
QDir.setCurrent(QDir.rootPath())
# absFile and relFile now point to the same file
QDir.setCurrent("/tmp")
# absFile now points to "/local/bin",
# while relFile points to "/tmp/local/bin"
setFilter(filter)
Parameters:

filterFilter 的组合

设置由entryList()entryInfoList()使用的过滤器为filters。该过滤器用于指定entryList()entryInfoList()应返回的文件类型。参见Filter

另请参阅

filter() setNameFilters()

setNameFilters(nameFilters)
Parameters:

nameFilters – 字符串列表

警告

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

设置由entryList()entryInfoList()使用的名称过滤器为nameFilters指定的过滤器列表。

每个名称过滤器都是一个通配符(globbing)过滤器,理解*?通配符。参见fromWildcard()

例如,以下代码在QDir上设置了三个名称过滤器,以确保仅列出通常用于C++源文件的扩展名的文件:

filters = QStringList()
filters << "*.cpp" << "*.cxx" << "*.cc"
dir.setNameFilters(filters)

另请参阅

nameFilters() setFilter()

setPath(path)
Parameters:

路径 – 字符串

设置目录的路径为path。路径会被清理掉多余的“.”、“..”和多个分隔符。不会检查是否存在具有此路径的目录;但你可以使用exists()自行检查。

路径可以是绝对的或相对的。绝对路径以目录分隔符“/”开头(在Windows下可能前面有一个驱动器说明)。相对文件名以目录名或文件名开头,并指定相对于当前目录的路径。绝对路径的一个例子是字符串“/tmp/quartz”,相对路径可能看起来像“src/fatlib”。

static setSearchPaths(prefix, searchPaths)
Parameters:
  • prefix – str

  • searchPaths – 字符串列表

警告

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

设置或替换Qt的文件名前缀prefix的搜索路径为searchPaths

要为文件名指定前缀,请在文件名前加上前缀,后跟一个冒号(例如,“images:undo.png”,“xmldocs:books.xml”)。prefix只能包含字母或数字(例如,不能包含冒号或斜杠)。

Qt 使用此搜索路径来定位具有已知前缀的文件。搜索路径条目按顺序测试,从第一个条目开始。

QDir.setSearchPaths("icons", QStringList(QDir.homePath() + "/images"))
QDir.setSearchPaths("docs", QStringList(":/embeddedDocuments"))
...
QPixmap pixmap("icons:undo.png") # will look for undo.png in QDir.homePath() + "/images"
QFile file("docs:design.odf") # will look in the :/embeddedDocuments resource path

文件名前缀必须至少为2个字符长,以避免与Windows驱动器号冲突。

搜索路径可能包含指向Qt资源系统的路径。

另请参阅

searchPaths()

setSorting(sort)
Parameters:

sortSortFlag 的组合

设置由entryList()entryInfoList()使用的排序顺序。

sort 由从枚举 SortFlag 中 OR 运算的值指定。

另请参阅

sorting() SortFlag

sorting()
Return type:

SortFlag的组合

返回由setSorting()设置的值

另请参阅

setSorting() SortFlag

swap(other)
Parameters:

其他QDir

将此QDir实例与other交换。此函数非常快且永远不会失败。

static temp()
Return type:

QDir

返回系统的临时目录。

该目录是使用临时目录的绝对规范路径构建的,确保其path()与其absolutePath()相同。

详情请参见tempPath()

static tempPath()
Return type:

字符串

返回系统临时目录的绝对规范路径。

在Unix/Linux系统上,这是TMPDIR环境变量中的路径,如果未定义TMPDIR,则为/tmp。在Windows上,这通常是TEMPTMP环境变量中的路径。此方法返回的路径不会以目录分隔符结尾,除非它是根目录(驱动器的根目录)。

static toNativeSeparators(pathName)
Parameters:

pathName – str

Return type:

字符串

返回 pathName,其中‘/’分隔符已转换为适合底层操作系统的分隔符。

在Windows上,toNativeSeparators("c:/winnt/system32")返回"c:\winnt\system32"。

返回的字符串可能与参数相同,例如在Unix操作系统上。