QFile创建文件以及递归文件删除文件

2023-11-15

QFile创建文件

1.t_dir.mkpath(t_firstFilePath);//创建文件夹
2.t_File.open(QIODevice::WriteOnly|QIODevice::Truncate)//创建文本
3.若文件不存在会创建一个,QIODevice::Truncate以重写的方式打开,即在打开之后会将之前的数据清空

char CInterpretData::saveFile(const QString &path)
{
	QString t_firstFilePath=path + "/Show";//构造一级目录
	QDir t_dir;
	if ( !t_dir.exists(t_firstFilePath))
	{
		t_dir.mkpath(t_firstFilePath);//创建文件夹
	}
	for (auto itf=m_interpretData.begin(); itf != m_interpretData.end(); itf++)
	{
		QString t_SecondFilePath= t_firstFilePath + "/" + itf->hName;//1.构造二级目录
		if (!t_dir.exists(t_SecondFilePath))
		{
			t_dir.mkpath(t_SecondFilePath);
		}
		//2.二级目录创建成功 
		if (t_dir.exists(t_SecondFilePath))
		{
			for (auto itLine=itf->vLineSectionInfo.begin(); itLine != itf->vLineSectionInfo.end();itLine++ )
			{
				QString t_DataFilePath=t_SecondFilePath+ "/" + itf->hName + "_" +QString::number(itLine->lineNumber)  + ".dat";//构造三级目录下的txt文件
				QFile t_File(t_DataFilePath);
				if (t_File.open(QIODevice::WriteOnly|QIODevice::Truncate))
				{
				}
				else
				{
					return 0;
				}
			}
		}
		else
		{
			return 0;
		}
	}

	return 1;

}

QFile递归遍历文件

1.递归遍历文件 QDirIterator t_FirstIterator(t_firstFilePath,QDir::Files |QDir::Dirs|QDir::NoDotAndDotDot),可以将当前目录的文件遍历完,然后结束
2.想要遍历下一级目录的文件,可以嵌套使用

char CInterpretData::readFile(const QString &path)
{
	m_interpretData.clear();
	QString t_firstFilePath=path + "/Show";
	QDir t_dir;
	if( !t_dir.exists(t_firstFilePath))
	{
		return 0;
	}
	QDirIterator t_FirstIterator(t_firstFilePath,QDir::Files |QDir::Dirs|QDir::NoDotAndDotDot);//, QDirIterator::Subdirectories
	if (! t_FirstIterator.hasNext())
	{
		return 0;
	}
	while (t_FirstIterator.hasNext())
	{
		t_FirstIterator.next();
		QFileInfo t_firstInfo=t_FirstIterator.fileInfo();
		QString t_SecondPath=t_firstInfo.absoluteFilePath();
		QString t_hName=t_firstInfo.fileName();
		QDirIterator t_SecondIterator(t_SecondPath,QDir::Files |QDir::Dirs|QDir::NoDotAndDotDot);//, QDirIterator::Subdirectories
		while(t_SecondIterator.hasNext())
		{
			t_SecondIterator.next();
			QFileInfo t_SecondInfo=t_SecondIterator.fileInfo();
			QString t_ThirdPath=t_SecondInfo.absoluteFilePath();
		}	
	}
	return 1;
}

QFile删除数据

QFile::remove(t_DelPath);//删除文件
qDir.removeRecursively();//可以将目录下所有文件删除 以及他们的子目录

注意使用数据流 QDataStream时,可以<<vector ,>>vector;

即可以直接存vector数据 和读取vector数据。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

QFile创建文件以及递归文件删除文件 的相关文章

随机推荐

  • Go_配置系统环境MacOS(M1)

    在MacOS下和JDK一样 配不配环境其实MacOS都是可以检测的到的 安装好以后直接输入go version是一样可以的 因为都是使用开发工具的 在开发工具里配置的话是样的 如果有习惯的话就配置一下吧 下载安装及配置环境 1 官网下载 h
  • 基于QT开发的跨平台文件校验工具

    QtFileHash QtFileHash是一款基于Qt开发的跨平台文件校验工具 支持Windows Linux MacOS平台 支持MD4 MD5 SHA1 SHA256 SHA512算法 项目地址 https github com zd
  • Linux下共享文件夹的位置在哪

    大家都知道vm这个虚拟机有个共享文件夹的功能 怎么设置这个共享文件夹在图示位置 但问题是在虚拟机里面这个文件夹的位置在哪里呢 我上网找了半天也没有解决方案 这里直接告诉大家 应该是被隐藏了但是我用 ls al看也没有 直接在用户 unbun
  • python 图片的读取、显示、处理与保存(PIL和OpenCV)

    目录 0 前言 1 图片读取 显示和保存 2 PIL与cv2相互转换 3 处理与保存 3 1 裁剪 3 2 绘制矩形 参考链接 0 前言 先撇开matplotlib不谈 在python江湖用于读取图片的主要为两个门派 分别是PIL家族 fr
  • Object.is()

    ES5 比较两个值是否相等 只有两个运算符 相等运算符 两个 和严格相等运算符 三个 它们都有缺点 前者会自动转换数据类型 后者的NaN不等于自身 以及 0等于 0 JavaScript 缺乏一种运算 在所有环境中 只要两个值是一样的 它们
  • 社区版VS2019下配置Opencv4.5.3

    1 下载Opencv 我下的是4 5 3 下载地址 https sourceforge net projects opencvlibrary 解压安装 没记错的话是 exe 文件 双击安装 没啥要注意的 选好路径就行 安装完成 安装完成后是
  • STM32——OLED调试工具与显示屏

    文章目录 一 调试工具 二 OLED简介 三 硬件电路接线图 四 OLED驱动函数 五 源码 OLED c OLED h OLED Font h 一 调试工具 调试方式 串口调试 通过串口通信 将调试信息发送到电脑端 电脑使用串口助手显示调
  • 外盘国际期货

    什么是交易 有人说交易就是买卖 从字面看这没啥毛病 概括性也很强 但我们不妨再细细掰扯下 交易 的深层含义 我们可以先将 交易 二字拆开来逐字理解与分析其意 交 象形字 一个人 最早出现在甲骨文 本义 动词 反叉两腿站立 说文解字 里泛指交
  • Docker修改已有镜像,并打包生成新的镜像tar文件

    文章目录 一 加载镜像 二 运行镜像 三 对镜像进行修改 四 将容器打包成新的镜像 五 将新的镜像保存为tar包 一 加载镜像 在镜像目录下打开linux终端 输入如下命令 docker load i 镜像文件名 tar 二 运行镜像 镜像
  • shineblink HC-SR505人体红外感应传感器

    HC SR505人体红外感应传感器 一 本例程实现功能 二 HC SR505传感器介绍 三 接线图 四 完整代码 五 代码运行结果 一 本例程实现功能 通过HC SR505人体红外感应传感器模块感应人体的出现 当感应到人体时 Core电路板
  • 支持二级汉字的 php 汉字助记码生成

    gbk2312 编码范围共94区 0 55区为一级汉字 是按照拼音顺序排列的 可以按照编码区间确定汉字的拼音 但是 56 区以后是按笔画顺序排列的 所以只能用对照表来确定拼音 鉴于目前我找不到现成的代码 固整理了一份 测试可用 PHP 汉字
  • 【操作系统】王道考研 p11 线程概念、多线程模型

    视频 知识总览 是什么 为什么 进程是程序的一次执行 但有些功能不是由一个程序顺序处理就能实现的 有的进程可能需要 同时 做很多事情 而传统的进程只能串行地执行一系列程序 因此 引入 线程 来增加并发度 引入线程后 线程成为了程序执行流的最
  • esp8266连接mqtt时client.publish出现的小问题

    client publish发送变化数据的问题 温湿度为例 先是获取数据 加入我们获取的湿度为humidity 温度为temp 下一步就是我们的发送环节啦 client publish 主题 内容 我们字节将内容替换是会报错的 我们需要对数
  • qemu-guest-agent windows下的监控开发

    windows下的qemu guest agent 简称qga 的名字叫做qemu guest agent win32 目前最新版的版本号是qemu guest agent win32 0 12 1 2 2 355 el6 4 9 x86
  • 【踩坑】三种方式解决 Homebrew failing to install - fatal: not in a git directory

    问题描述 解决方法一 添加安全目录 没有测试 git config global add safe directory opt homebrew Library Taps homebrew homebrew git config globa
  • 动手写docker中遇到的问题合集

    fork exec usr bin sh operation not permitted exit status 1 我的环境 win10 wsl2 ubuntu20 04 解决方案 设置wsl默认用户为root sudo nano etc
  • java实现赫夫曼树以及赫夫曼编码和解码(用byte[])

    首先对于赫夫曼编码有个大概的理解 赫夫曼编码 Huffman Coding 又称霍夫曼编码 是一种编码方式 可变字长编码 VLC 的一种 Huffman于1952年提出一种编码方法 该方法完全依据字符出现概率来构造异字头的平均长度最短的码字
  • ubuntu搭载网络文件系统与linux开发板共享资源

    搭建NFS 如果ubuntu是运行在虚拟机上的 首先需要修改ubuntu与windows的网络连接模式 将其修为桥接模式与windows连接网络 ubuntu以及开发板安装net toos sudo apt install net tool
  • 常用设计模式-命令模式

    命令模式 讲一个请求封装成一个对象 可以让不同的请求对客户进行参数化 对请求排队或者记录请求日志 以及支持可撤销的操作 别名为事务模式或者动作模式 这样两者之间通过命令对象进行沟通 这样方便将命令对象进行储存 传递 调用 增加与管理 命令模
  • QFile创建文件以及递归文件删除文件

    QFile创建文件 1 t dir mkpath t firstFilePath 创建文件夹 2 t File open QIODevice WriteOnly QIODevice Truncate 创建文本 3 若文件不存在会创建一个 Q