本文结构如下:概述
函数详解初始化
目录信息
操作目录
程序目录和特殊目录
路径相关
宏
所有函数
概述
我们知道 QFileInfo 类是文件信息类,其用法参考《QFileInfo 类 - 文件信息类》。那么本文讲解目录信息类 QDir,用于获取有关目录的信息
函数详解
初始化
构造函数
QDir(const QDir &dir)
QDir(const QString &path = QString())
QDir(const QString &path, const QString &nameFilter, QDir::SortFlags sort = SortFlags(Name | IgnoreCase), QDir::Filters filters = AllEntries)
指定目录
QString path() const
void setPath(const QString &path)
指定名称过滤器
QStringList nameFilters() const
void setNameFilters(const QStringList &nameFilters)
指定排序
QDir::SortFlags sorting() const
void setSorting(QDir::SortFlags sort)
指定类型过滤器
QDir::Filters filter() const
void setFilter(QDir::Filters filters)
[static]bool match(const QString &filter, const QString &fileName)
[static]bool match(const QStringList &filters, const QString &fileName)
要了解 QDir 类,首先肯定是这个类的构建方法。一般就是把目录地址传给构造函数即可,但这里我们来讲下第三个构造函数中各参数的意义。一共4各参数,分别为 path(路径信息)、nameFilter(名称过滤)、sort(排序规则)、filters(类型过滤)。
关于名称过滤,首先要知道生活中我们用过滤和屏蔽来筛选结果,而设置了过滤就意味着谁能通过。既然 QDir 类是目录信息类,那我肯定要知道该目录下有哪些文件、文件夹,所以在这里设置好后在调用 entryList()、entryInfoList() 时就会只显示你设置的过滤词。例如我设置了“*.cpp”".h",那么调用 entryList() 后只返回扩展名为 cpp 和 h 的文件,其他都不显示。
关于排序规则,也是指定了返回目录信息的先后顺序,有的按名称排序,有的按时间排序,具体排序规则参看下图。可以组合起来用。
关于类型过滤,作用和名称过滤是类似的,只不过是按照类型来过滤,具体类型如下图。
关于 match(),两个静态函数可以判断 fileName 是否符合 filter 规则,其中 filter 是通配符表达式
目录信息
目录名称
QString dirName() const
是否存在
bool exists() const
bool exists(