Qt学习笔记:QDir
来源:互联网 发布:怎样用手机淘宝购物 编辑:程序博客网 时间:2024/06/05 05:00
前言
接触过DOS系统的同学就知道,dir命令就是浏览当前目录下的所有文件及文件夹,和linux下面的ls命令类似。
顾名思义,QDir类就是用来访问系统目录结构的一个类。
关于QDir类的具体用法,官方文档讲得非常清楚,这里就不详细介绍,本文主要记录作者觉得值得重点介绍的函数方法。
获取当前文件目录
获取当前程序所在的目录。
[static] QString QDir::currentPath()
获取当前可执行文件所在的目录。
[static] QString QCoreApplication::applicationDirPath()
注意两者的区别,第一中可以理解为取得当前项目所在的目录,第二个则直接得到exe文件(在window系统中)所在的位置。
获取当前文件的父目录
bool QDir::cdUp()
QDir *dir = new QDir(filepath);dir->cdUp()QString path = dir->absolutePath();
或者也可以
QDir *dir = new QDir(filepath);QString name = dir->dirName();filepath.remove(name);
得到所有的文件信息
返回一个字符串列表,里面保存了该目录下所有文件及文件夹的名字。
QStringList QDir::entryList()
返回一个QFileInfoList,里面保存了该目录下所有文件及文件夹的信息。
QFileInfoList QDir::entryInfoList()
这两个方法都可以配合下面三种方法使用:
void QDir::setNameFilters(const QStringList &nameFilters)void QDir::setSorting(SortFlags sort)void QDir::setFilter(Filters filters)
重点
默认情况下,得到的所有文件及文件夹名字一定包括.
和..
这两个目录。
如果我们想过滤掉这两个目录,那我们需要setFilter(Filters filters)
。
其中Filters filters
是一组二进制的数,用于选择过滤模式。
其中QDir::NoDotAndDotDot
就是过滤掉.
和..
的意思。
需要注意的是,qt默认的filter值是QDir::AllEntries,如果你重新设定了filters,那么你至少要保证QDir::Dirs
,QDir::Files
,QDir::Drives
存在其中之一,否则你无法得到任何实体。
举例:
QDir dir = new QDir();dir->setFilter(QDir::NoDotAndDotDot);qDebug()<<dir->entryList();
显示结果为空
必须改为:
QDir dir = new QDir();dir->setFilter(QDir::NoDotAndDotDot|QDir::AllEntries);qDebug()<<dir->entryList();
才得到正确结果。
参考文献:
http://doc.qt.io/qt-5/qdir.html
0 0
- Qt学习笔记:QDir
- [Qt笔记]QDir的用法
- Qt-QDir
- Qt学习笔记,使用QDir获取当前目录下所有目录和文件信息
- Qt读取文件夹 QDir
- QT小程序:QDir
- QDir的使用笔记
- Qt学习: 文件相关常用QDir路径类和QFileInfo类.
- QDir
- 【Qt官方视频码农】Qt_11-QDir
- [QT]QDir和QFile的基本操作
- qt的资源替换搜索QDir详解
- QT:QDir中文件路径的问题“\” “\\” “/"
- QT输入输出(三)之 目录遍历(QDir)
- Qt——QDir类来实现目录的遍历
- QT中QDir::currentPath()和QAppllication::appllicationDirPath()用法区别
- Qt——QDir类来实现目录的遍历
- qt好用的文件遍历代码,QFileInfo,QDir
- Shell case esac语句
- Java数组4
- unity屏幕模糊
- JS提交中文encodeURI两次
- 单向链表-1
- Qt学习笔记:QDir
- AirGIS相关API
- Shell for循环
- 欢迎使用CSDN-markdown编辑器
- spring-boot中font-awesome在ie8中不显示的问题
- python直接获取API传递回来的参数
- 丹的Python学习笔记Day3
- rman 备份 DB到 asm 磁盘新目录(backup as cpoy)
- 用RxBus替代EventBus、Otto