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() Fetch More Example

class Filter#

(inherits enum.Flag) 该枚举描述了 QDir 可用的过滤选项,例如 entryList()entryInfoList() 。通过使用位或运算符合并以下列表中的值来指定筛选器值。

常量

描述

QDir.Dirs

列出与筛选器匹配的目录。

QDir.AllDirs

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

QDir.Files

列出文件。

QDir.Drives

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

QDir.NoSymLinks

不要列出符号链接(不支持符号链接的操作系统会忽略)。

QDir.NoDotAndDotDot

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

QDir.NoDot

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

QDir.NoDotDot

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

QDir.AllEntries

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

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() 。排序值通过以下列表中值的按位或得到

常量

描述

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__([path=""])#
参数:

path – 字符串

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

另请参阅

currentPath()

__init__(arg__1)
参数:

arg__1QDir

构建一个指向目录 dirQDir 对象,它是另一个 QDir 对象的副本。

另请参阅

operator=()

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

  • nameFilter – 字符串

  • sortSortFlag 的组合

  • filterFilter 的组合

创建一个具有路径 pathQDir,该路径通过 nameFilter 使用名称进行过滤,通过 filters 使用属性进行过滤。它还使用 sort 对名称进行排序。

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

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

注意

path 不需要存在。

__reduce__()#
返回类型:

对象

absoluteFilePath(fileName)#
参数:

fileName – str

返回类型:

str

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

absolutePath()
返回类型:

str

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

static addSearchPath(prefix, path)
参数:
  • prefix – str

  • path – 字符串

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

另请参阅

setSearchPaths()

canonicalPath()
返回类型:

str

警告

本部分包含自动从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)
参数:

dirName – str

返回类型:

bool

QDir的目录更改为dirName

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

调用 cdUp() 等同于调用 cdUp()

另请参阅

cdUp() isReadable() exists() path()

cdUp
返回类型:

bool

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

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

注意

在Android上,不支持对内容URI执行此操作。有关更多信息,请参阅DocumentFile.getParentFile()

另请参阅

cd() isReadable() exists() path()

staticcleanPath(path)#
参数:

path – 字符串

返回类型:

str

返回经过标准化(即,平台原生的分隔符转换为“/”)、冗余去除并尽可能解析“.”和“..”的 path

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

另请参阅

absolutePath() canonicalPath()

staticcurrent()#
返回类型:

QDir

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

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

静态 currentPath()#
返回类型:

str

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

dirName()#
返回类型:

str

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

不会检查具有该名称的目录实际上是否存在;但请参阅 exists()

静态 drives()#
返回类型:

QFileInfo 的引用列表

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

在 Windows 上,返回包含 "C:/", "D:/", 等等的 QFileInfo 对象列表。它不返回没有可移动媒体的磁盘驱动器。在其他操作系统上,返回仅包含一个根目录(即 “/”)的列表。

另请参阅

root() rootPath()

entryInfoList([filters=QDir.Filter.NoFilter[, sort=QDir.SortFlag.NoSort]])#
参数:
返回类型:

QFileInfo 的引用列表

这是一个重载函数。

返回目录中所有文件和目录的 QFileInfo 对象列表,按前面通过 setNameFilters()setFilter() 设置的名字和属性过滤器排序,并按照通过 setSorting() 设置的标志排序。

可以使用 filterssort 参数重写属性过滤器排序规范。

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

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

  • filtersFilter的组合

  • sortSortFlag 的组合

返回类型:

QFileInfo 的引用列表

返回目录中所有文件和目录的 QFileInfo 对象列表,按前面通过 setNameFilters()setFilter() 设置的名字和属性过滤器排序,并按照通过 setSorting() 设置的标志排序。

可以使用 nameFiltersfilterssort 参数重写名字过滤器、文件属性过滤器排序规范。

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

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

  • filtersFilter的组合

  • sortSortFlag 的组合

返回类型:

字符串列表

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

可以使用 nameFiltersfilterssort 参数重写名字过滤器、文件属性过滤器排序规范。

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

entryList([filters=QDir.Filter.NoFilter[, sort=QDir.SortFlag.NoSort]])
参数:
返回类型:

字符串列表

这是一个重载函数。

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

可以使用 filterssort 参数重写属性过滤器排序规范。

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

注意

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

exists()#
返回类型:

bool

这是一个重载函数。

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

用于测试目录内部存在文件和目录的重载函数接受一个参数。

另请参阅

exists() exists()

exists(name)
参数:

名称 – str

返回类型:

bool

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

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

另请参阅

exists() exists()

filePath(fileName)#
参数:

fileName – str

返回类型:

str

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

filter()#
返回类型:

Filter的组合

返回setFilter()设置的值

另请参阅

setFilter()

static fromNativeSeparators(pathName)#
参数:

pathName – 字符串

返回类型:

str

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

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

static home()#
返回类型:

QDir

返回用户的家目录。

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

有关详细信息,请参阅homePath()

静态 homePath()#
返回类型:

str

警告

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

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

在Windows上,这个函数将返回当前用户配置文件的目录。通常,它是

C:/Users/Username

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

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

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

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

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

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

  5. C:/目录。

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

isAbsolute()#
返回类型:

bool

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

注意

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

静态isAbsolutePath(path)#
参数:

path – 字符串

返回类型:

bool

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

注意

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

isEmpty([filters=QDir.Filters(QDir.Filter.AllEntries | QDir.Filter.NoDotAndDotDot)])#
参数:

filtersFilter的组合

返回类型:

bool

返回目录是否为空。

等于使用过滤器 QDir::AllEntries | QDir::NoDotAndDotDotcount() == 0,但更快,因为它只检查目录中是否至少有一个条目。

注意

除非您将 filters 标志设置为包括 QDir::NoDotAndDotDot(默认值是这样做),否则没有目录是空的。

另请参阅

count() entryList() setFilter()

isReadable()#
返回类型:

bool

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

警告

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

另请参阅

isReadable()

isRelative()#
返回类型:

bool

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

注意

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

static isRelativePath(path)#
参数:

path – 字符串

返回类型:

bool

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

注意

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

isRoot()#
返回类型:

bool

警告

本部分包含自动从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()#
返回类型:

QChar

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

另请参阅

separator()

makeAbsolute()#
返回类型:

bool

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

static match(filters, fileName)#
参数:
  • filters – 字符串列表

  • fileName – str

返回类型:

bool

这是一个重载函数。

如果 fileNamefilters 列表中任意一个通配符(glob)模式匹配,则该方法返回 true;否则返回 false。匹配不区分大小写。

static match(filter, fileName)
参数:
  • filter – 字符串

  • fileName – str

返回类型:

bool

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

mkdir(dirName)#
参数:

dirName – str

返回类型:

bool

这是一个重载函数。

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

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

mkdir(dirName, permissions)
参数:
  • dirName – str

  • permissionsPermission 的组合

返回类型:

bool

创建名为 dirName 的子目录。

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

当调用此函数时,如果目录已存在,则返回 false

已创建目录的权限设置为 permissions

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

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

另请参阅

rmdir()

mkpath(dirPath)#
参数:

dirPath – 字符串

返回类型:

bool

创建目录路径 dirPath

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

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

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

另请参阅

rmpath()

nameFilters()#
返回类型:

字符串列表

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

另请参阅

setNameFilters()

静态nameFiltersFromString(nameFilter)#
参数:

nameFilter – 字符串

返回类型:

字符串列表

__ne__(dir)#
参数:

dirQDir

返回类型:

bool

警告

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

如果目录 dir 和此目录具有不同的路径或不同的排序或过滤设置,则返回 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__(dir)#
参数:

dirQDir

返回类型:

bool

警告

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

如果目录 dir 和此目录具有相同的路径,并且它们的排序和过滤设置也相同,则返回 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(arg__1)#
参数:

arg__1 – int

返回类型:

str

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

注意

在 Qt 版本 6.5 之前, pos 是一个 int,而不是 qsizetype

另请参阅

count() entryList()

path()#
返回类型:

str

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

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

refresh()#

刷新目录信息。

relativeFilePath(fileName)#
参数:

fileName – str

返回类型:

str

警告

本部分包含自动从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)#
参数:

fileName – str

返回类型:

bool

删除文件,fileName

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

removeRecursively()#
返回类型:

bool

删除目录及其全部内容。

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

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

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

注意

此函数旨在删除一个小型应用程序内部目录(例如临时目录),而不是用户可见的目录。对于用户可见的操作,更推荐向用户更精确地报告错误、在发生错误时提供解决方案、显示删除进度,因为可能需要几分钟。

rename(oldName, newName)#
参数:
  • oldName - str

  • newName - str

返回类型:

bool

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

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

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

另请参阅

rename()

rmdir(dirName)#
参数:

dirName – str

返回类型:

bool

删除由 dirName 指定的目录。

要使 rmdir() 成功,目录必须为空。

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

另请参阅

mkdir()

rmpath(dirPath)#
参数:

dirPath – 字符串

返回类型:

bool

删除目录路径 dirPath

只要父目录为空,该函数将删除 dirPath 中的所有父目录。这与 mkpath(dirPath) 相反。

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

另请参阅

mkpath()

static root()#
返回类型:

QDir

返回根目录。

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

有关详细信息,请参阅 rootPath()

static rootPath()#
返回类型:

str

返回根目录的绝对路径。

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

静态searchPaths(prefix)#
参数:

prefix – str

返回类型:

字符串列表

返回 prefix 的搜索路径。

静态separator()#
返回类型:

QChar

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

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

另请参阅

listSeparator()

静态setCurrent(path)#
参数:

path – 字符串

返回类型:

bool

警告

本部分包含自动从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)#
参数:

filterFilter 的组合

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

另请参阅

filter() setNameFilters()

setNameFilters(nameFilters)#
参数:

nameFilters – 字符串列表

警告

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

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

每个名称过滤器都是一种通配符( glob 匹配)过滤器,它理解 *? 通配符。请参阅 fromWildcard()

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

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

另请参阅

nameFilters() setFilter()

setPath(path)#
参数:

path – 字符串

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

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

static setSearchPaths(prefix, searchPaths)#
参数:
  • prefix – str

  • searchPaths – 字符串列表

警告

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

设置或替换具有前缀 prefix 的 Qt 搜索路径以匹配 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)#
参数:

sortSortFlag 的组合

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

sort 使用从枚举类型 SortFlag 中 OR 的值来指定。

另请参阅

sorting() SortFlag

sorting()#
返回类型:

SortFlag 的组合

返回由 setSorting()

另请参阅

setSorting() SortFlag

swap(other)#
参数:

otherQDir

other 交换这个 QDir 实例。这个函数非常快,永不失败。

静态temp()#
返回类型:

QDir

返回系统的临时目录。

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

有关详细信息,请参阅 tempPath()

静态tempPath()#
返回类型:

str

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

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

静态 toNativeSeparators(pathName)#
参数:

pathName – 字符串

返回类型:

str

返回具有“/”分隔符转换为适合底层操作系统的分隔符的pathName

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

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