- class QDirリンク先
QDir
クラスは、ディレクトリ構造とその内容にアクセスを提供します。もっと詳細...概要リンク先
メソッドリンク先
def
__init__()
def
__reduce__()
def
absolutePath()
def
canonicalPath()
def
cd()
def
cdUp()
def
dirName()
定义
entryList()
定义
exists()
定义
filePath()
定义
filter()
定义
isAbsolute()
定义
isEmpty()
定义
isReadable()
定义
isRelative()
定义
isRoot()
定义
mkdir()
定义
mkpath()
定义
__ne__()
定义
__eq__()
定义
operator[]()
定义
path()
定义
refresh()
定义
remove()
定义
rename()
定义
rmdir()
定义
rmpath()
定义
setFilter()
定义
setPath()
定义
setSorting()
定义
sorting()
定义
swap()
静态函数#
定义
cleanPath()
定义
current()
定义
drives()
定义
home()
定义
homePath()
定义
match()
定义
root()
定义
rootPath()
定义
separator()
定义
setCurrent()
定义
temp()
定义
tempPath()
注意
此文档可能包含从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
对象。也有相应的返回字符串的函数。QString
返回值
应用程序的工作目录
用户的家目录
根目录
系统临时目录
静态函数
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 时存在一些限制。
可能需要通过实现Android的本地文件选择器 的 QFileDialog 来提示用户访问权限。
另请参阅
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()
将返回所有可读取、可写入、可执行或这三个组合的文件。这使得默认设置易于编写,同时也很实用。例如,设置
Readable
、Writable
和Files
标志允许列出所有应用程序具有读访问权限、写访问权限或两者都有的文件。如果在这个组合中也包括Dirs
和Drives
标志,则可以列出所有驱动器、目录、所有应用程序可以读取、写入或执行的文件以及这些文件/目录的符号链接。要获取目录的权限,请使用
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 – 字符串
构建一个指向给定目录
path
的QDir
。如果路径为空,则使用程序的当前工作目录(“.”)。另请参阅
- __init__(arg__1)
- 参数:
arg__1 –
QDir
构建一个指向目录
dir
的QDir
对象,它是另一个QDir
对象的副本。另请参阅
operator=()
- __init__(path, nameFilter[, sort=QDir.SortFlags(QDir.SortFlag.Name | QDir.SortFlag.IgnoreCase)[, filter=QDir.Filter.AllEntries]])
创建一个具有路径
path
的QDir
,该路径通过nameFilter
使用名称进行过滤,通过filters
使用属性进行过滤。它还使用sort
对名称进行排序。默认的
nameFilter
是一个空字符串,不会排除任何内容;默认的filters
是AllEntries
,这也不会排除任何内容。默认的sort
是Name
|IgnoreCase
,即按名称不区分大小写排序。如果
path
是一个空字符串,QDir
使用“.”(当前目录)。如果nameFilter
是一个空字符串,QDir
使用名称过滤器“*”(所有文件)。- __reduce__()#
- 返回类型:
对象
- absoluteFilePath(fileName)#
- 参数:
fileName – str
- 返回类型:
str
返回目录中文件的绝对路径名称。不检查文件是否实际存在于目录中;但请参阅
exists()
。在fileName
中删除冗余的多重分隔符或“.”和“..”目录(请参阅cleanPath()
)。- absolutePath()
- 返回类型:
str
返回绝对路径(以“/”或驱动器指定开始的路径),可能包含符号链接,但从不包含冗余的“.”,“..”或多个分隔符。
- static addSearchPath(prefix, path)
- 参数:
prefix – str
path – 字符串
将
path
添加到prefix
的搜索路径中。另请参阅
- 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()
-
static
cleanPath
(path)
# - 参数:
path – 字符串
- 返回类型:
str
返回经过标准化(即,平台原生的分隔符转换为“/”)、冗余去除并尽可能解析“.”和“..”的
path
。保留符号链接。此函数不会返回规范路径,而是返回输入的最简版本。例如,“./local”变为“local”,“local/../bin”变为“bin”和“/local/usr/../bin”变为“/local/bin”。
另请参阅
absolutePath()
canonicalPath()
返回应用程序的当前目录。
该目录使用当前目录的绝对路径构建,确保其
path()
与其absolutePath()
相同。- 静态 currentPath()#
- 返回类型:
str
返回应用程序当前目录的绝对路径。当前目录是最后通过
setCurrent()
设置的目录,或者如果没有调用过该函数,则是父进程启动此应用程序的目录。- dirName()#
- 返回类型:
str
返回目录的名称;这不同于路径,例如,命名为“mail”的目录可能有路径“/var/spool/mail”。如果目录没有名称(例如,它是根目录),将返回空字符串。
不会检查具有该名称的目录实际上是否存在;但请参阅
exists()
。返回系统上的根目录列表。
在 Windows 上,返回包含 "C:/", "D:/", 等等的 QFileInfo 对象列表。它不返回没有可移动媒体的磁盘驱动器。在其他操作系统上,返回仅包含一个根目录(即 “/”)的列表。
另请参阅
- entryInfoList([filters=QDir.Filter.NoFilter[, sort=QDir.SortFlag.NoSort]])#
这是一个重载函数。
返回目录中所有文件和目录的 QFileInfo 对象列表,按前面通过
setNameFilters()
和setFilter()
设置的名字和属性过滤器排序,并按照通过setSorting()
设置的标志排序。可以使用
filters
和sort
参数重写属性过滤器排序规范。如果目录不可读、不存在或没有任何内容符合条件,则返回空列表。
- entryInfoList(nameFilters[, filters=QDir.Filter.NoFilter[, sort=QDir.SortFlag.NoSort]])
返回目录中所有文件和目录的 QFileInfo 对象列表,按前面通过
setNameFilters()
和setFilter()
设置的名字和属性过滤器排序,并按照通过setSorting()
设置的标志排序。可以使用
nameFilters
、filters
和sort
参数重写名字过滤器、文件属性过滤器排序规范。如果目录不可读、不存在或没有任何内容符合条件,则返回空列表。
- entryList(nameFilters[, filters=QDir.Filter.NoFilter[, sort=QDir.SortFlag.NoSort]])#
返回目录中所有文件和目录的名称列表,按照先前使用
setNameFilters()
和setFilter()
设置的名称和属性过滤器,并按照setSorting()
设置的标志排序。可以使用
nameFilters
、filters
和sort
参数重写名字过滤器、文件属性过滤器排序规范。如果目录不可读、不存在或没有任何内容符合条件,则返回空列表。
- entryList([filters=QDir.Filter.NoFilter[, sort=QDir.SortFlag.NoSort]])
这是一个重载函数。
返回目录中所有文件和目录的名称列表,按照先前使用
setNameFilters()
和setFilter()
设置的名称和属性过滤器,并按照setSorting()
设置的标志排序。可以使用
filters
和sort
参数重写属性过滤器排序规范。如果目录不可读、不存在或没有任何内容符合条件,则返回空列表。
注意
若要列出指向不存在文件的符号链接,必须将
System
传递给过滤器。- exists()#
- 返回类型:
bool
这是一个重载函数。
如果目录存在,则返回
true
;否则返回false
。(如果找到一个同名的文件,该函数将返回false
)。用于测试目录内部存在文件和目录的重载函数接受一个参数。
- exists(name)
- 参数:
名称 – str
- 返回类型:
bool
如果名为
name
的文件存在,则返回true
;否则返回 false。除非
name
包含绝对文件路径,否则假定文件名为相对于当前目录的相对路径,因此该函数通常用于检查目录内是否存在文件。- filePath(fileName)#
- 参数:
fileName – str
- 返回类型:
str
返回目录中文件的路径名称。不检查该文件是否实际存在于目录中;但请参阅
exists()
。如果QDir
是相对路径,则返回的路径名称也将是相对路径。在fileName
中,不会移除多余的多个分隔符或“.”和“..”目录(请参阅cleanPath()
)。返回
setFilter()
设置的值另请参阅
- static fromNativeSeparators(pathName)#
- 参数:
pathName – 字符串
- 返回类型:
str
使用文件分隔符“/”返回
pathName
。例如,在Windows上,fromNativeSeparators(“c:\\winnt\\system32”)返回“c:/winnt/system32”。返回的字符串在某些操作系统上可能与参数相同,例如在Unix上。
返回用户的家目录。
目录使用家目录的绝对路径构建,确保其
path()
将与它的absolutePath()
相同。有关详细信息,请参阅
homePath()
。- 静态 homePath()#
- 返回类型:
str
警告
本部分包含自动从C++翻译到Python的片段,可能包含错误。
返回用户家目录的绝对路径。
在Windows上,这个函数将返回当前用户配置文件的目录。通常,它是
C:/Users/Username
可以使用
toNativeSeparators()
函数将分隔符转换为适合底层操作系统的形式。如果当前用户配置文件的目录不存在或无法检索,则会检查以下替代方案(按顺序)直到找到现有且可用的路径
由环境变量
USERPROFILE
指定的路径。由环境变量
HOMEDRIVE
和HOMEPATH
连接形成的路径。由环境变量
HOME
指定的路径。由
rootPath()
函数返回的路径(它使用环境变量SystemDrive
)C:/
目录。
在非Windows操作系统上,如果存在环境变量
HOME
,则使用该变量,否则使用rootPath()
返回的路径。- isAbsolute()#
- 返回类型:
bool
如果目录的路径是绝对路径,则返回
true
;否则返回false
。请参阅isAbsolutePath()
.- 静态isAbsolutePath(path)#
- 参数:
path – 字符串
- 返回类型:
bool
如果
path
是绝对路径,则返回true
;如果是相对路径,则返回false
。注意
以冒号(:)开头的路径始终视为绝对路径,因为它们表示一个
QResource
。- isEmpty([filters=QDir.Filters(QDir.Filter.AllEntries | QDir.Filter.NoDotAndDotDot)])#
- 参数:
filters –
Filter
的组合- 返回类型:
bool
返回目录是否为空。
等于使用过滤器
QDir::AllEntries | QDir::NoDotAndDotDot
的count() == 0
,但更快,因为它只检查目录中是否至少有一个条目。注意
除非您将
filters
标志设置为包括QDir::NoDotAndDotDot
(默认值是这样做),否则没有目录是空的。另请参阅
count()
entryList()
setFilter()
- isReadable()#
- 返回类型:
bool
如果目录可读并且我们可以通过名称打开文件,则返回
true
;否则返回false
。- isRelative()#
- 返回类型:
bool
如果目录路径是相对的,则返回
true
;否则返回 false。 (在 Unix 中,路径是相对的,如果它不以“/”开头)。注意
以冒号(:)开头的路径始终视为绝对路径,因为它们表示一个
QResource
。- static isRelativePath(path)#
- 参数:
path – 字符串
- 返回类型:
bool
如果路径是相对路径,则返回
true
;如果是绝对路径,则返回false
。- 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")
另请参阅
- static listSeparator()#
- 返回类型:
QChar
返回本机路径列表分隔符:Unix 下为 ‘:’,Windows 下为 ‘;’。
另请参阅
- makeAbsolute()#
- 返回类型:
bool
将目录路径转换为绝对路径。如果它已经绝对,则不执行任何操作。如果转换成功,则返回
true
;否则返回false
。- static match(filters, fileName)#
- 参数:
filters – 字符串列表
fileName – str
- 返回类型:
bool
这是一个重载函数。
如果
fileName
与filters
列表中任意一个通配符(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
permissions –
Permission
的组合
- 返回类型:
bool
创建名为
dirName
的子目录。成功时返回
true
;否则返回false
。当调用此函数时,如果目录已存在,则返回
false
。已创建目录的权限设置为
permissions
。在 POSIX 系统中,权限受
umask
值的影响。在 Windows 上,使用 ACLs 仿真权限。当组拥有的权限少于其他组时,这些 ACLs 可能处于非规范顺序。当打开属性对话框的安全选项卡时,具有此类权限的文件和目录将生成警告。授予组与其他组相同的所有权限可以避免此类警告。
另请参阅
- mkpath(dirPath)#
- 参数:
dirPath – 字符串
- 返回类型:
bool
创建目录路径
dirPath
。此函数将创建创建目录所需的所有父目录。
如果成功,返回
true
;否则返回false
。如果此函数调用时路径已存在,它将返回 true。
另请参阅
- nameFilters()#
- 返回类型:
字符串列表
返回由
setNameFilters()
设置的字符串列表另请参阅
- 静态nameFiltersFromString(nameFilter)#
- 参数:
nameFilter – 字符串
- 返回类型:
字符串列表
警告
本部分包含自动从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")
警告
本部分包含自动从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()
)。- 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
。另请参阅
- rmdir(dirName)#
- 参数:
dirName – str
- 返回类型:
bool
删除由
dirName
指定的目录。要使 rmdir() 成功,目录必须为空。
如果成功,返回
true
;否则返回false
。另请参阅
- rmpath(dirPath)#
- 参数:
dirPath – 字符串
- 返回类型:
bool
删除目录路径
dirPath
。只要父目录为空,该函数将删除
dirPath
中的所有父目录。这与 mkpath(dirPath) 相反。如果成功,返回
true
;否则返回false
。另请参阅
返回根目录。
目录使用根目录的绝对路径构建,确保其
path()
与其absolutePath()
相同。有关详细信息,请参阅
rootPath()
。- static rootPath()#
- 返回类型:
str
返回根目录的绝对路径。
对于 Unix 操作系统,返回 “/”。对于 Windows 文件系统,通常返回 “c:/”。
- 静态searchPaths(prefix)#
- 参数:
prefix – str
- 返回类型:
字符串列表
返回
prefix
的搜索路径。- 静态separator()#
- 返回类型:
QChar
返回本地目录分隔符:在 Unix 下为 “/”,在 Windows 下为 “\”。
您不需要使用此函数来构建文件路径。如果您始终使用 “/”,Qt 将转换为符合底层操作系统的路径。如果您想使用操作系统自身的分隔符显示路径给用户,请使用
toNativeSeparators()
.另请参阅
- 静态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"
设置
entryList()
和entryInfoList()
使用的过滤器为filters
。该过滤器用于指定entryList()
和entryInfoList()
应返回的文件类型。请参阅Filter
。另请参阅
- setNameFilters(nameFilters)#
- 参数:
nameFilters – 字符串列表
警告
本部分包含自动从C++翻译到Python的片段,可能包含错误。
将
entryList()
和entryInfoList()
使用的名称过滤器设置为由nameFilters
指定的过滤器列表。每个名称过滤器都是一种通配符( glob 匹配)过滤器,它理解
*
和?
通配符。请参阅fromWildcard()
。例如,以下代码在
QDir
上设置三个名称过滤器,以确保仅列出用于 C++ 源文件的扩展名文件:filters = QStringList() filters << "*.cpp" << "*.cxx" << "*.cc" dir.setNameFilters(filters)
另请参阅
- 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 资源系统 的路径。
另请参阅
设置用于
entryList()
和entryInfoList()
的排序顺序。sort
使用从枚举类型SortFlag
中 OR 的值来指定。返回由
setSorting()
另请参阅
与
other
交换这个QDir
实例。这个函数非常快,永不失败。返回系统的临时目录。
目录使用临时目录的绝对规范路径构建,确保其
path()
将与其absolutePath()
相同。有关详细信息,请参阅
tempPath()
。- 静态tempPath()#
- 返回类型:
str
返回系统临时目录的绝对规范路径。
在 Unix/Linux 系统上,这是
TMPDIR
环境变量中的路径,或者在TMPDIR
未定义时为/tmp
。在 Windows 上,通常是位于TEMP
或TMP
环境变量中的路径。此方法返回的路径不以目录分隔符结尾,除非它是根目录(驱动器的根目录)。- 静态 toNativeSeparators(pathName)#
- 参数:
pathName – 字符串
- 返回类型:
str
返回具有“/”分隔符转换为适合底层操作系统的分隔符的pathName。
在Windows上,toNativeSeparators(“c:/winnt/system32”) 返回 “c:\winnt\system32”。
返回的字符串在某些操作系统上可能与参数相同,例如在Unix上。