QT之QDir文件目录拷贝、创建、删除

2023-10-31

在开发过程中,需要用到文件的一些处理,例如文件夹的拷贝,文件夹删除或创建,文件的拷贝、删除等操作。Qt已经包含了这些操作,作为一个跨平台的开发工具,这些功能绝对会帮助你在跨平台开发中很方便。

Qt中QDir类实现了对文件夹和路径的处理,QFile类实现了对文件的处理。

1 文件夹创建

使用Qt的QDir来实现文件夹的创建。

QDir path; // 创建一个QDir变量
if (!path.exists("c:/test")) {  // 使用QDir成员函数exists()来判断文件夹是否存在
	path.mkdir("c:/test");  // 使用mkdir来创建文件夹
}

2 文件夹删除

使用QDir类来实现文件的删除。

QDir path; // 创建一个QDir变量
if (path.exists("c:/test")) {  // 使用QDir成员函数exists()来判断文件夹是否存在
	path.remove("c:/test");  // 使用remove()来删除文件夹
}

3 文件的删除

使用QFile来实现文件的删除

QFile file("c:/test/1.txt"); // 创建一个QFile 变量
if (file.exists()) {  // 使用QFile 成员函数exists() 来判断文件夹是否存在
	file.remove();  // 使用remove()来删除文件夹
}

4 文件的拷贝

使用QFile来实现文件的拷贝

QString src = "c:/test/1.txt";
QString dst = "d:/test/2.txt";

QFile file(src); // 创建一个QFile 变量
file.copy(dst);  // 使用copy()完成文件的拷贝

5 文件夹的拷贝

使用QDir和QFile一起实现文件夹的递归拷贝

QString src = "c:/test";
QString dst = "d:/receive";

void CopyDir(QString src, QString dst)
{
	QDir srcDir(src);
	QDir dstDir(dst);
	
	if (!dstDir.exists()) {
		dstDir.mkdir();
	}

	QFileInfoList list = srcDir.entryInfoList();

	foreach (QFileInfo info, list) {
		if (info.fileName() == "." || info.fileName == "..") {
			continue;
		}
		if (info.isDir()) {
			// 创建文件夹,递归调用该函数
			CopyDir(info.filePath(), dst + "/" + info.fileName());
			continue;
		}
		// 文件拷贝
		QFile file(info.filePath());
		file.copy(dst + "/" + info.fileName());
	}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

QT之QDir文件目录拷贝、创建、删除 的相关文章

  • 如何识别应用程序在 Linux 上以深色主题运行?

    我开发了一个使用 qscintilla 作为文本编辑器的应用程序 我还实现了自定义词法分析器来突出显示特定于语言的关键字 到目前为止 突出显示关键字的样式已硬编码在我的应用程序中 并且在 Windows Linux Ubuntu Mac 上
  • QT5文本渲染问题

    我在基于 MIPS 的平台上交叉编译了 QT5 每当我运行包括示例应用程序 其中包含文本 的应用程序时 它首先绘制文本 然后使用文本颜色的 矩形 填充来绘制文本区域 所以最后我在所有显示文本的地方看到了一个黑色矩形 如果我改变文本颜色 矩形
  • 在 Qt 中自定义 AppMenu

    我正在为 MacOS 开发 Qt 应用程序 如何向 menuApp 添加项目 我的意思是出现在苹果图标右侧菜单栏上的条目 我想知道如何在 Qt 中实现这一点 而不是 Objective C 我正在使用 Qt 5 9 这是QWidget应用程
  • Qt如何连接rubberBandChanged信号

    我尝试将 QChartView 类中的 ruby BandChanged 信号链接到 MainWindow 类中的特定函数 主窗口 h class MainWindow public QMainWindow Q OBJECT public
  • QTextDocument、QPdfWriter - 如何缩放输出

    我创建了一个QTextDocument里面有一张桌子 现在我尝试使用将其渲染为 PDF 格式QPdfWriter Qt 5 2 1 我就是这样做的 QPdfWriter pdfWriter output QPainter painter p
  • QtRuby 可以与 Qt 5 一起使用吗?

    我可以在网上找到的所有内容QtRuby https duckduckgo com q ruby and qt使用 Qt 4 但当前的 Qt 版本是 5 这是否只是文档跟不上现实的问题 Qt 5 可以与 QtRuby 一起正常工作 如果您断言
  • 如何正确配置QDockWidget使其显示/隐藏?

    我是 Qt GUI 的新手 最初想配置一个 Qt Dock 小部件 该小部件在按下某个键 假设为 A 时显示 并在按下另一个键 假设为 B 时隐藏 但经过一番研究 我没有找到任何相关的解决方案 我尝试创建一个切换按钮 第一次按下时将显示停靠
  • QNetworkAccessManager没有完成信号

    我想直接请求和响应而不是使用connect SLOT finished SLOT 您可以使用QEventLoop以便应用程序等待并可以同时处理其他事件 include
  • 与“operator>>”不匹配(操作数类型为“QDataStream”和“QJsonObject”)

    当我在 Ubuntu Focal 上使用 Qt 5 12 时 出现此错误 但是 当我使用 Qt 5 13 2 及更高版本时 没有显示错误 我想让它在 5 12 及更低版本中工作 我应该怎么做才能实现这一目标 TQProfile TQProf
  • 如何在 QtQuick Controls 2 中将对话框置于屏幕中央?

    我的所有对话框都出现在屏幕的左上角而不是中心 让对话框自动正确放置的最佳方法是什么 import QtQuick 2 7 import QtQuick Controls 2 2 ApplicationWindow id mainWindow
  • QVBoxLayout:如何使用 Qt 设计器将小部件对齐到顶部

    我仅将 qt 设计器用于 ui 布局 这与这个问题几乎是同一个问题 QVBoxLayout 如何将小部件垂直对齐到顶部而不是中心 https stackoverflow com questions 10082299 qvboxlayout
  • 使用 Qt,有哪些好方法可以分解包含 GUI 逻辑的大型源文件?

    我正在使用 Qt 5 开发一个 C 项目 它有一个包含大量 UI 元素的复杂窗口 该窗口是使用 Qt Designer 设计的 并从 UI 文件加载 我发现 Qt 的典型模式是在其主类中编写窗口 UI 的所有逻辑 即他们文档中的 单一继承方
  • 如何实时返回鼠标坐标?

    我是 PyQt 的新手 我正在尝试使用它来创建一个实时返回鼠标位置的小部件 这是我所拥有的 import sys from PyQt5 QtWidgets import QWidget QToolTip QPushButton QAppli
  • QGeoCoordinate:没有这样的文件或目录

    我正在尝试使用 QtLocation 但不能 我不明白为什么 我在 ubuntu 14 04 上使用 qt5 3 2 这很奇怪 因为我将这一行添加到我的 pro 文件中 QT network CONFIG mobility MOBILITY
  • Qt 的最佳实践包括和预编译头文件?

    当使用现代和最新的 C 编译器 例如 MSVC2015 并激活预编译头时 当前关于包含 Qt 头文件的 最佳实践 是什么 Example include
  • Qt 5.0.1:应用程序不会在 Qt 创建者之外执行

    我正在尝试运行程序 TransitTalker exe 这是我从 qt 编译的代码 如下图所示 https www dropbox com s ypgklrm4uschri5 filecontents png https www dropb
  • (如何)我可以抑制未找到包配置文件的警告吗?

    我正在尝试创建一个CMakeLists txt尝试查找的文件Qt5 如果失败 则尝试回退到Qt4安装 该脚本到目前为止有效 但如果出现以下情况我总会收到警告Qt5未安装 注意FindQt5 cmake是由提供Qt5并且仅当以下情况时才可用Q
  • 在 Qt5 中,是否需要 Q_INVOKABLE 来从 QML 调用公共 QObject 函数?

    我刚刚意识到我可以调用暴露于 QML 的对象的几乎任何函数 现在我对 Q INVOKABLE 很好奇 Qt5docs http doc qt io qt 5 qtqml cppintegration exposecppattributes
  • 如何将图像显示为缩略图

    我有一个QTreeView显示硬盘驱动器和目录 我也有一个QListView显示图像文件如下 但我想将图像显示为缩略图 如下所示 My code mainWidget mainWidget QWidget parent QWidget pa
  • Qt 布局,在小部件大小更改后调整到最小大小

    基本上我有一个QGridLayout里面有一些小部件 最重要的是 2 个标签 我用它们将图像绘制到屏幕上 好吧 如果用户愿意 他可以更改传入图像的分辨率 从而强制标签调整大小 我们假设标签的初始大小是320x240 用户将 VideoMod

随机推荐

  • Windows&Linux共享文件夹之利用Linux系统创建共享文件夹

    这种方法是利用Linux来创建共享文件夹 流程 在Linux上创建共享文件夹 Windows上去访问和映射Linux的共享文件夹 就可以实现对Linux上的文件进行操作 在Linux上创建共享文件夹 先在Linux下新建文件夹 点击属性 打
  • 嗨翻C

    1 main函数 当计算机运行程序时 它需要一些方法来判断程序是否运行成功 计算机正是通过检查main 函数的返回值来做到这一点的 如果让main 函数返回0 就表明从程序运行成功 如果让它返回其他值 就表示程序在运行时出了问题 如果想检查
  • 开源项目使用及选型

    一 为什么选择开源项目 1 快速开发 2 站在巨人的肩膀上 成熟的开源项目 功能完善 设计优秀 细节点考虑周全 不用像自己开发一样需要从头去全面开发 测试 完善 本身也是好的学习材料 Android 本身就是在 Linux Java 上发展
  • 计组(day3)8086指令系统——算术运算指令(加减指令)

    知识点 1 加法运算指令 1 1 普通加法指令ADD 1 2 带进位加法指令ADC 1 3 加1指令INC 2 减法指令 2 1 不考虑借位的减法指令SUB 2 2 考虑借位的减法指令SBB 2 3 减1指令DEC 2 4 求补指令NEG
  • 在hexo中使用mathjax的方法

    欢迎光临我的个人主页 之前总是使用mathtype写公式然后再上传图片 速度太慢了 而且公式出错后不容易修改 所以开始用mathjax 但是原生hexo并不能直接渲染mathjax 查阅资料总结了一波 只需五步 可以先换成淘宝的下载源 增加
  • PostgreSQL 函数 for循环使用

    Postgresql 函数例子 本业务是实现将之前已经使用的数据和现在的数据关联起来 需要写个sql函数初始化数据 数据库使用的是postgresql 具体代码 create or replace function insert user
  • import与from xx import遇到的一点问题-python学习

    今天在python的运行框里分别输入import datetime datetime 和 from datetime import datetime 本以为结果应该是一样 结果前者却报错 gt gt gt import datetime d
  • WPF 控件库Live Charts 折线图平移及缩放功能

    功能效果如上图所示 使用Chart Zoom 默认为None 和Chart Pan 默认为Unset 使用鼠标滚轮放大 缩小 单击 按住并拖动以进行平移 后台代码 using System using System ComponentMod
  • 解决Error creating bean with name ‘sqlSessionFactory‘ defined in class path resource

    Error creating bean with name sqlSessionFactory defined in class path resource 出错背景 项目中使用mybatisplus开发 涉及到了xml文件 现在需要下线个
  • window横向渗透-IPC命令&schtasks 计划任务上线

    0x01 条件 1 我们获取到目标主机管理员账号密码 并且目标主机的 139 445端口是开启的 0x02 建立ipc协议拷贝cs木马 这时候 我们可以先建立ips 协议 net use ip ipc 密码 user 账号 例子 net u
  • 飞桨框架2.0RC新增模型保存、加载方案,与用户场景完美匹配,更全面、更易用

    通过一段时间系统的课程学习 算法攻城狮张同学对于飞桨框架的使用越来越顺手 于是他打算在企业内尝试使用飞桨进行AI产业落地 但是AI产业落地并不是分秒钟的事情 除了专业技能过硬 熟悉飞桨的使用外 在落地过程中还会遇到很多细节的问题 这不 他就
  • 通过 docker-compose 快速部署 Apache Ambari 保姆级教程

    文章目录 一 概述 二 前期准备 1 部署 docker 2 部署 docker compose 三 Apache Ambari 编排部署 1 获取 Ambari 安装包 2 yum 源配置文件 3 用户和库初始化sql文件 4 启动脚本
  • Windows系统下Python如何执行命令行关闭指定进程

    Windows系统下Python如何执行命令行关闭指定进程 具体代码如下 coding utf 8 import time import os def test cmd 打开excel文件 os popen r D 1 xlsx 打开exc
  • 判断日期是不是节假日

    现象 判断日期是不是节假日 方法 通过访问网络地址传入时间参数进行判断 1 判断日期是不是节假日的方法 2 发送网络请求判断的方法 3 发送网络请求关闭输入输出流步骤 确定是不是节假日 是节假日返回false 工作日进行数据抓取返回true
  • 测试网站漏洞软件,如何检测网站漏洞,web漏洞扫描工具盘点

    一 常见漏洞 1 高危漏洞 自媒体www 777n com XSS跨站脚本漏洞 由于程序员在编写程序时对用户提交的数据没有做充分的合规性判断和进行HTML编码处理 直接把数据输出到浏览器客户端 这样导致用户可以提交一些特意构造的脚本代码或H
  • opencv之图像二值化处理

    opencv二值化操作分为 全局阈值和局部阈值两种 在进行图像二值化之前需要对图片进行灰度处理 全局阈值 全局阈值分为 手动阈值和自动阈值两种 手动阈值 opencv函数 threshold gray src dst threshold v
  • [激光原理与应用-54]:《激光焊接质量实时监测系统研究》-5-试验结果及分析

    目录 5 1 实验条件 5 2 焊接正常信号分析 5 2 1 正常焊接过程 5 2 2 时域 原始波形 5 2 3 时域 统计分析后的波形 5 3 缺陷信号分析 5 3 1 缺陷焊接过程 5 3 2 时域 原始信号 5 3 3 时域 统计处
  • 并发编程之——AQS原理和阻塞队列变化

    1 AQS简介 2 源码分析 2 1 线程阻塞 2 2 线程唤醒 1 AQS简介 AQS全名 AbstractQueuedSynchronizer 它就是Java的一个抽象类 它的出现是为了解决多线程竞争共享资源而引发的安全问题 细致点说A
  • HTTP协议详解(真的很经典)

    HTTP协议详解 真的很经典 2008 11 03 09 11 by Hundre 711330 阅读 32 评论 收藏 编辑 转自 http blog csdn net gueter archive 2007 03 08 1524447
  • QT之QDir文件目录拷贝、创建、删除

    在开发过程中 需要用到文件的一些处理 例如文件夹的拷贝 文件夹删除或创建 文件的拷贝 删除等操作 Qt已经包含了这些操作 作为一个跨平台的开发工具 这些功能绝对会帮助你在跨平台开发中很方便 Qt中QDir类实现了对文件夹和路径的处理 QFi