#include<QDir>

QDir这是一个获取路径类

常用的方法有:

路径是否为空 isEmpty()

 QString str = "D:/QT5.12test/test/main.cpp";QDir dir(str);if (dir.isEmpty())//"路径不为空"

路径是否存在 exists()

 QString str = "D:/QT5.12test/test/main.cpp";QDir dir(str);if (dir.exists())  //"路径不存在"  因为这里的路径是到文件名的

获取当前路径 QDir::current()

qDebug() << "QDir::current() :" << QDir::current();
//QDir::currentPath() : "D:/msvcTest/QDirTest/QDirTest"

获取当前路径下的所有文件 entryInfoList()

qDebug() << "entryInfoList() :" << dir.entryInfoList();

entryInfoList() : (QFileInfo(D:\QT5.12test\test.), QFileInfo(D:\QT5.12test\test…), QFileInfo(D:\QT5.12test\test\main.cpp), QFileInfo(D:\QT5.12test\test\test.pro), QFileInfo(D:\QT5.12test\test\test.pro.user), QFileInfo(D:\QT5.12test\test\test.pro.user.419f24b), QFileInfo(D:\QT5.12test\test\text.ini), QFileInfo(D:\QT5.12test\test\widget.cpp), QFileInfo(D:\QT5.12test\test\widget.h), QFileInfo(D:\QT5.12test\test\widget.ui))

获取路径 / 后面的名称,如果只有盘符,就返回空 dirName()

 QString str = "D:/QT5.12test/test/main.cpp";QDir dir(str);qDebug() << "dirName() :" << dir.dirName();//dirName() : "main.cpp"QString str = "D:/QT5.12test/test";QDir dir(str);qDebug() << "dirName() :" << dir.dirName();//dirName() : "test"QString str = "D:/";QDir dir(str);qDebug() << "dirName() :" << dir.dirName();//dirName() : ""

创建路径的两种方式

//文件夹不存在就创建 2 前面的文件夹必须都存在,否则创建失败
QString str2 = QString::fromLocal8Bit("D:/test/1/2");QDir dir2(str2);
if(!dir2.exists())
{dir2.mkdir(str2 );
}
//创建文件夹名为 2 的文件夹
//如果1文件夹不存在,也同时创建1文件夹,在创建2文件夹
QString str2 = QString::fromLocal8Bit("D:/test/1/2");QDir dir2(str2);
if(!dir2.exists())
{dir2.mkpath(str2 );
}
//没有的文件夹,都创建
#include<QFileInfo>

QFileInfo这是一个获取文件信息的类

删除文件夹(不包括本地文件夹)

void QDirTest::DeleteFolder(const QString& dirPath)
{if (dirPath.isEmpty())return;QDir dir(dirPath);if (!dir.exists())return;dir.setFilter(QDir::AllEntries | QDir::NoDotAndDotDot);QFileInfoList fileList = dir.entryInfoList();foreach(QFileInfo file, fileList){if (file.isFile()){file.dir().remove(file.fileName());}else{DeleteFolder(file.absoluteFilePath());file.dir().rmdir(file.absoluteFilePath());}}
}

删除文件夹 ,包括本地文件夹

void QDirTest::DeleteFolder2(const QString& dirPath)
{if (dirPath.isEmpty()) {return;}QDir dir(dirPath);if (!dir.exists()) {return;}dir.setFilter(QDir::AllEntries | QDir::NoDotAndDotDot);QFileInfoList fileList = dir.entryInfoList();foreach(QFileInfo file, fileList){if (file.isFile()){file.dir().remove(file.fileName());}else{DeleteFolder2(file.absoluteFilePath());}}dir.rmdir(dir.absolutePath());
}

QT笔记——QDir,QFileInfo类相关推荐

  1. QT的QFileInfo类的使用

    详细说明 QFileInfo类提供与系统无关的文件信息. QFileInfo提供有关文件在文件系统中的名称和位置(路径),其访问权限以及它是目录链接还是符号链接等信息.文件的大小和上次修改/读取时间也 ...

  2. QFileInfo 类【官翻】

    文章目录 详述 性能问题 公共函数 创建及析构 目录 路径.文件名及后缀 时间信息 缓存 属性 类型 访问权限 比较 静态公用函数 相关的非成员 QFileInfo 类 QFileInfo类提供与系统 ...

  3. Qt笔记 之 QListWidget控件的使用

    Qt提供QListWidget类列表框控件用来加载并显示多个列表项.QListWidgetItem类就是列表项类.一般列表框控件中的列表项有两种加载方式: 一种是由用户手动添加的列表项,比如音乐播放器 ...

  4. 05黑马QT笔记之自定义槽函数

    05黑马QT笔记之自定义槽函数 1 自定义槽函数其实不难,没什么好说的,注意以下几点便可. 自定义参函数注意事项(Qt5): * 1)自定义槽函数可以是类成员函数(用得最多).全局普通函数.静态函数. ...

  5. 02黑马QT笔记之完全手写Hello World

    02黑马QT笔记之完全手写Hello World 1 步骤: 1 新建项目. 2 选择其他项目->空项目. 3 在空项目中添加QT +=widgets //代表使用窗口基类. 4 右击项目名字- ...

  6. QT笔记第0篇__Qt基本介绍

    QT笔记第0篇__Qt基本介绍 一.引言 二.Qt简介 三.特点: 四.相关网址 五.参考资料 一.引言 由于算法的实现过程中常常需要制作一些demo来进行功能展示,最开始打算用mfc,于是看了一段几 ...

  7. Qt 笔记:Qt中的IO操作

    Qt中IO操作的处理方式 -Qt通过统一的接口简化了文件与外部设备的操作方式 -Qt中的文件被看做一种特殊的外部设备 -Qt中的文件操作与外部设备的操作相同 IO操作中的关键函数接口 -打开设备:bo ...

  8. QT 009 QSqlDatabase 数据库类的使用

    前言:本文对QT的构建数据库连接类的帮助文件做了一点小结,可以看作是翻译吧: Qt 5.9 Qt SQL C++ Classes QSqlDatabase Qt 5.9.0 Reference Doc ...

  9. 【java笔记】File类(2):获取,判断,创建,删除,遍历目录方法

    [java笔记]File类(1)概述,静态成员,构造方法_m0_52043808的博客-CSDN博客 获取功能方法: public String getAbsolutePath():返回此File的绝 ...

最新文章

  1. tcp报文格式_面试必备TCP(一):三次握手
  2. TensorFlow数据归一化
  3. 谈谈 ES6 的 Promise 对象
  4. Ubuntu16.04下CUDA 9.0 + cuDNN v7.0 + tensorflow 1.6.0(GPU)环境搭建
  5. 浅谈块级元素和行级元素的相对定位和绝对定位问题
  6. 录制视频显示的视频角度和拍摄角度保持一致
  7. java long 二进制输出格式_算法:java打印int类型的二进制格式
  8. spring 自定义注解及使用
  9. CSS 居中 可随着浏览器变大变小而居中
  10. 大工《画法几何与机械制图》课程设计大作业离线作业
  11. 海思3559a平台 MIPI YUV 驱动开发
  12. flask专题-小说网站开发四(完结)
  13. 身份证上传尺寸太大如何缩小?改照片尺寸的简单方法
  14. 《壁纸 : 手机高清壁纸大全》EULA条款协议
  15. Yy And WJM
  16. 什么是架构?架构的本质和作用!
  17. 基于ESP32的智能家庭健康系统
  18. 栈 括号匹配问题(C语言)
  19. [教程]北京迅为iMX6ULL开发板上配置 AP 热点
  20. ruoyi-cloud 服务器端idea启动报错Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.6.0:exec (defau

热门文章

  1. 更换IP地址方式简介。
  2. Hadoop启动错误:WARNING log4j.properties is not found. HADOOP_CONF_DIR may be incomplete
  3. 全球及中国左旋肉碱富马酸盐行业发展趋势与需求形势预测报告(2022-2027年)
  4. 使用xamarin开发Android、iOS报错failed to open directory: 系统找不到指定的文件
  5. 【pandas之数据清洗和处理和空值处理】
  6. AIO-3588JQ 8K AI工业主板
  7. 跟我学c++中级篇——concepts的几个应用
  8. 浅谈Linux PCI设备驱动(一)
  9. Mat 的介绍和使用
  10. LSTM 长短期记忆