Offer 驾到,掘友接招!我正在参与2022春招打卡活动,点击查看活动详情。
前言:
QDir类是Qt中用来访问目录结构及其内容的类,它既可以操作路径名、访问路径和文件相关信息、操作底层的文件系统,还可以访问Qt的资源系统。Qt中使用“/”作为通用的目录分隔符合URLs的目录分隔符。
QDir既可以使用相对路径也可以使用绝对路径来指向一个文件。
QDir的相关操作函数:
- isRelative(); // 判断QDir是否使用相对路径
- isAbsolute(); // 判断QDir是否使用绝对路径
- makeAbsolute(); // 将一个相对路径转换为绝对路径
- path(); // 获取目录的路径
- setPath(); // 给QDir设置一个新路径
- absolutePath(); // 获取目录的绝对路径
- dirName(); // 获取目录名,通常返回绝对路径中的最后一个元素;如果QDir代表当前目录,会返回“.”
- cd(); // 进入到指定目录
- cdUp(); // 进入到父目录cdUp() 等效于 cd("..")
- mkdir(); // 创建一个目录
- rename(); // 重命名
- rmdir(); // 删除目录(删除文件用remove())
- exists(); // 测试指定目录是否存在
- isReadable(); // 测试目录的属性,是否可读
- isRoot(); // 测试目录的属性,是否是根目录
- refresh(); // 重新读取目录的数据
- count(); // 返回目录中的所有条目数
- entryList(); // 获取目录中条目的名称列表
- entryInfoList(); // 获取一个QFileInfo对象的列表
名称过滤器:
通过名称过滤器(name filters)使用通配符(wildcards)指定一个模式进行文件名的匹配,一个属性过滤器可以选取条目的属性并且可以区分文件和目录,还可以使用setSorting()函数设定排序顺序。
名称过滤器就是一个字符串列表,可以使用setNameFileters() 函数来设置过滤器。
例:
QStringList filters;
filters << "*.cpp" << "*.h" << "*.txt";
dir.setNameFilters(filters);
常用目录的获取函数:
- current(); //返回QDir,应用程序的工作目录
- currentPath(); //返回QString,应用程序的工作目录
- home(); //返回QDir,用户的home目录
- homePath(); //返回QString,用户的home目录
- root(); //返回QDir,root根目录
- rootPath(); //返回QString,root根目录
- temp(); //返回QDir,系统存放临时文件的目录
- tempPath(); //返回QString,系统存放临时文件的目录
使用setCurrent() 函数可以设置应用程序的工作目录;使用QCoreApplication::applicationDirPath() 函数可以查找包含应用程序可执行文件的目录。