PySide6.QtCore.QDir¶
- class QDir¶
-
概要¶
方法¶
def
__init__()
def
__reduce__()
def
absolutePath()
def
canonicalPath()
def
cd()
def
cdUp()
def
count()
def
dirName()
def
entryInfoList()
def
entryList()
def
exists()
def
filePath()
def
filter()
def
isAbsolute()
def
isEmpty()
def
isReadable()
def
isRelative()
def
isRoot()
def
makeAbsolute()
def
mkdir()
def
mkpath()
def
nameFilters()
def
__ne__()
def
__eq__()
def
operator[]()
def
path()
def
refresh()
def
remove()
def
rename()
def
rmdir()
def
rmpath()
def
setFilter()
def
setNameFilters()
def
setPath()
def
setSorting()
def
sorting()
def
swap()
静态函数¶
def
addSearchPath()
def
cleanPath()
def
current()
def
currentPath()
def
drives()
def
home()
def
homePath()
def
isAbsolutePath()
def
isRelativePath()
def
listSeparator()
def
match()
def
root()
def
rootPath()
def
searchPaths()
def
separator()
def
setCurrent()
def
setSearchPaths()
def
temp()
def
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时有一些限制:
可能需要通过提示用户使用QFileDialog来获取访问权限,该对话框实现了Android的原生文件选择器。
旨在遵循Scoped storage指南,例如使用应用程序特定目录而不是其他公共外部目录。有关更多信息,请参阅storage best practices。
由于Qt API的设计(例如
QFile
),无法将后者API与Android的MediaStore API完全集成。
另请参阅
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()
将返回所有可读、可写、可执行或这三者的任意组合的文件。这使得默认设置易于编写,同时也非常有用。例如,设置
Readable
、Writable
和Files
标志允许列出应用程序具有读取权限、写入权限或两者兼具的所有文件。如果在此组合中还包含Dirs
和Drives
标志,则可以列出所有驱动器、目录、应用程序可以读取、写入或执行的所有文件,以及指向这些文件/目录的符号链接。要检索目录的权限,请使用
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,目录仍然会排在前面,但是以相反的顺序;文件将在目录之后列出,同样以相反的顺序。
构造一个
QDir
对象,该对象是目录dir
的QDir
对象的副本。另请参阅
operator=()
- __init__([path=""])
- Parameters:
路径 – 字符串
构造一个指向给定目录
path
的QDir
。如果路径为空,则使用程序的当前工作目录(“.”)。另请参阅
- __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__()¶
- 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
的搜索路径中。另请参阅
- 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()操作。- static cleanPath(path)¶
- Parameters:
路径 – 字符串
- Return type:
字符串
返回
path
,其中目录分隔符已标准化(即平台本机分隔符转换为“/”)并删除了冗余的分隔符,以及“.”和“..”已尽可能解析。符号链接被保留。此函数不返回规范路径,而是返回输入的最简单版本。例如,“./local”变为“local”,“local/../bin”变为“bin”,“/local/usr/../bin”变为“/local/bin”。
- count()¶
- Return type:
整数
返回目录中的目录和文件的总数。
等同于
entryList()
.count()。返回应用程序的当前目录。
该目录是使用当前目录的绝对路径构建的,确保其
path()
将与其absolutePath()
相同。- static currentPath()¶
- Return type:
字符串
返回应用程序当前目录的绝对路径。当前目录是最后通过
setCurrent()
设置的目录,如果从未调用过该函数,则为父进程启动此应用程序时的目录。- dirName()¶
- Return type:
字符串
返回目录的名称;这与路径不同,例如,名称为“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([filters=QDir.Filter.NoFilter[, sort=QDir.SortFlag.NoSort]])¶
这是一个重载函数。
返回目录中所有文件和目录名称的列表,根据之前使用
setNameFilters()
和setFilter()
设置的名称和属性过滤器进行排序,并根据使用setSorting()
设置的标志进行排序。可以使用
filters
和sort
参数来覆盖属性过滤和排序规范。如果目录不可读、不存在或没有任何内容符合规范,则返回一个空列表。
- entryList(nameFilters[, filters=QDir.Filter.NoFilter[, sort=QDir.SortFlag.NoSort]])
返回目录中所有文件和目录名称的列表,根据之前使用
setNameFilters()
和setFilter()
设置的名称和属性过滤器进行排序,并根据使用setSorting()
设置的标志进行排序。名称过滤器、文件属性过滤器和排序规范可以使用
nameFilters
、filters
和sort
参数进行覆盖。如果目录不可读、不存在或没有任何内容符合规范,则返回一个空列表。
- exists()¶
- Return type:
布尔
这是一个重载函数。
如果目录存在,则返回
true
;否则返回false
。(如果找到同名的文件,此函数将返回false)。接受参数的此函数的重载用于测试目录中是否存在文件和目录。
- exists(name)
- Parameters:
name – str
- Return type:
布尔
如果名为
name
的文件存在,则返回true
;否则返回 false。除非
name
包含绝对文件路径,否则文件名假定为相对于目录本身,因此此函数通常用于检查目录中是否存在文件。- filePath(fileName)¶
- Parameters:
fileName – str
- Return type:
字符串
返回目录中文件的路径名。不检查文件是否实际存在于目录中;但请参阅
exists()
。如果QDir
是相对的,返回的路径名也将是相对的。fileName
中的冗余多个分隔符或“.”和“..”目录不会被移除(请参阅cleanPath()
)。返回由
setFilter()
设置的值另请参阅
- static fromNativeSeparators(pathName)¶
- Parameters:
pathName – str
- Return type:
字符串
返回使用'/'作为文件分隔符的
pathName
。例如,在Windows上,fromNativeSeparators(”c:\\winnt\\system32
")返回“c:/winnt/system32”。返回的字符串可能与参数相同,例如在Unix操作系统上。
返回用户的主目录。
该目录是使用主目录的绝对路径构建的,确保其
path()
将与其absolutePath()
相同。详情请参见
homePath()
。- static homePath()¶
- Return type:
字符串
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
返回用户主目录的绝对路径。
在Windows系统下,此函数将返回当前用户配置文件的目录。通常,这是:
C:/Users/Username
使用
toNativeSeparators()
函数将分隔符转换为适合底层操作系统的分隔符。如果当前用户配置文件的目录不存在或无法检索,将按以下顺序检查替代方案,直到找到存在且可用的路径:
由
USERPROFILE
环境变量指定的路径。由连接
HOMEDRIVE
和HOMEPATH
环境变量形成的路径。由
HOME
环境变量指定的路径。由
rootPath()
函数返回的路径(该函数使用SystemDrive
环境变量)C:/
目录。
在非Windows操作系统上,如果存在
HOME
环境变量,则使用它,否则使用rootPath()
返回的路径。- isAbsolute()¶
- Return type:
布尔
如果目录的路径是绝对的,则返回
true
;否则返回false
。参见isAbsolutePath()
。- static isAbsolutePath(path)¶
- Parameters:
路径 – 字符串
- Return type:
布尔
如果
path
是绝对路径,则返回true
;如果是相对路径,则返回false
。注意
以冒号(:)开头的路径始终被视为绝对路径,因为它们表示一个
QResource
。- isEmpty([filters=QDir.Filters(QDir.Filter.AllEntries | QDir.Filter.NoDotAndDotDot)])¶
- Parameters:
filters –
Filter
的组合- Return type:
布尔
返回目录是否为空。
相当于带有过滤器
QDir::AllEntries | QDir::NoDotAndDotDot
的count() == 0
,但速度更快,因为它只检查目录是否至少包含一个条目。注意
除非你将
filters
标志设置为包含QDir::NoDotAndDotDot
(如默认值所做的那样),否则没有目录是空的。- isReadable()¶
- Return type:
布尔
如果目录可读并且我们可以通过名称打开文件,则返回
true
;否则返回false
。- isRelative()¶
- Return type:
布尔
如果目录路径是相对的,则返回
true
;否则返回 false。(在 Unix 下,如果路径不以“/”开头,则路径是相对的)。注意
以冒号(:)开头的路径始终被视为绝对路径,因为它们表示一个
QResource
。- static isRelativePath(path)¶
- Parameters:
路径 – 字符串
- Return type:
布尔
如果
path
是相对的,则返回true
;如果是绝对的,则返回false
。- 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")
另请参阅
- static listSeparator()¶
- Return type:
QChar
返回本机路径列表分隔符:在Unix下为‘:’,在Windows下为‘;’。
另请参阅
- makeAbsolute()¶
- Return type:
布尔
将目录路径转换为绝对路径。如果已经是绝对路径,则不进行任何操作。如果转换成功,返回
true
;否则返回false
。- static match(filter, fileName)¶
- Parameters:
filter – str
fileName – str
- Return type:
布尔
如果
fileName
匹配通配符(glob)模式filter
,则返回true
;否则返回false
。filter
可以包含由空格或分号分隔的多个模式。匹配不区分大小写。- static match(filters, fileName)
- Parameters:
filters – 字符串列表
fileName – str
- Return type:
布尔
这是一个重载函数。
如果
fileName
与filters
列表中的任何通配符(glob)模式匹配,则返回true
;否则返回false
。匹配是大小写不敏感的。- mkdir(dirName)¶
- Parameters:
dirName – str
- Return type:
布尔
这是一个重载函数。
创建一个名为
dirName
的子目录,并赋予默认权限。在POSIX系统上,默认是授予由
umask
允许的所有权限。在Windows上,新目录从其父目录继承其权限。- mkdir(dirName, permissions)
- Parameters:
dirName – str
permissions –
Permission
的组合
- Return type:
布尔
创建一个名为
dirName
的子目录。成功时返回
true
;否则返回false
。如果调用此函数时目录已经存在,它将返回
false
。创建的目录权限设置为
permissions
。在POSIX系统上,权限受
umask
值的影响。在Windows上,权限是使用ACL模拟的。当组被授予的权限少于其他组时,这些ACL可能处于非规范顺序。当打开属性对话框的安全选项卡时,具有此类权限的文件和目录将生成警告。授予组所有授予给其他组的权限可以避免此类警告。
另请参阅
- mkpath(dirPath)¶
- Parameters:
dirPath – str
- Return type:
布尔
创建目录路径
dirPath
。该函数将创建创建目录所需的所有父目录。
如果成功,返回
true
;否则返回false
。如果调用此函数时路径已经存在,它将返回 true。
另请参阅
- nameFilters()¶
- Return type:
字符串列表
返回由
setNameFilters()
设置的字符串列表另请参阅
- static nameFiltersFromString(nameFilter)¶
- Parameters:
nameFilter – str
- 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")
警告
本节包含从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()
)。- 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
。另请参阅
- rmdir(dirName)¶
- Parameters:
dirName – str
- Return type:
布尔
删除由
dirName
指定的目录。目录必须为空才能使rmdir()成功。
如果成功,返回
true
;否则返回false
。另请参阅
- rmpath(dirPath)¶
- Parameters:
dirPath – str
- Return type:
布尔
移除目录路径
dirPath
。该函数将删除
dirPath
中的所有父目录,前提是它们为空。这与mkpath(dirPath)相反。如果成功,返回
true
;否则返回false
。另请参阅
返回根目录。
目录是使用根目录的绝对路径构建的,确保其
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()
。另请参阅
- 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"
设置由
entryList()
和entryInfoList()
使用的过滤器为filters
。该过滤器用于指定entryList()
和entryInfoList()
应返回的文件类型。参见Filter
。另请参阅
- setNameFilters(nameFilters)¶
- Parameters:
nameFilters – 字符串列表
警告
本节包含从C++自动翻译到Python的代码片段,可能包含错误。
设置由
entryList()
和entryInfoList()
使用的名称过滤器为nameFilters
指定的过滤器列表。每个名称过滤器都是一个通配符(globbing)过滤器,理解
*
和?
通配符。参见fromWildcard()
。例如,以下代码在
QDir
上设置了三个名称过滤器,以确保仅列出通常用于C++源文件的扩展名的文件:filters = QStringList() filters << "*.cpp" << "*.cxx" << "*.cc" dir.setNameFilters(filters)
另请参阅
- 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资源系统的路径。
另请参阅
设置由
entryList()
和entryInfoList()
使用的排序顺序。sort
由从枚举SortFlag
中 OR 运算的值指定。返回由
setSorting()
设置的值另请参阅
将此
QDir
实例与other
交换。此函数非常快且永远不会失败。返回系统的临时目录。
该目录是使用临时目录的绝对规范路径构建的,确保其
path()
与其absolutePath()
相同。详情请参见
tempPath()
。- static tempPath()¶
- Return type:
字符串
返回系统临时目录的绝对规范路径。
在Unix/Linux系统上,这是
TMPDIR
环境变量中的路径,如果未定义TMPDIR
,则为/tmp
。在Windows上,这通常是TEMP
或TMP
环境变量中的路径。此方法返回的路径不会以目录分隔符结尾,除非它是根目录(驱动器的根目录)。- static toNativeSeparators(pathName)¶
- Parameters:
pathName – str
- Return type:
字符串
返回
pathName
,其中‘/’分隔符已转换为适合底层操作系统的分隔符。在Windows上,toNativeSeparators("c:/winnt/system32")返回"c:\winnt\system32"。
返回的字符串可能与参数相同,例如在Unix操作系统上。