Qt第十三章 目录和文件操作

server/2024/9/20 7:07:45/ 标签: qt, 开发语言

目录和文件操作

文章目录

  • 目录和文件操作
    • 设备I/O
      • 简介
      • I/O设备的类型
      • 基本文件读写
        • QFile
        • QTemporaryFile
      • 流操作
        • QTextStream
        • QDataStream
      • QFileInfo
      • QDir
      • QFileSystemWatcher
      • QStandardPaths
      • QSettings

设备I/O

简介

I/O设备的类型

基本文件读写

QFile
    QFile file("C:/Users/PVer/Documents/123.txt");if (!file.open(QFile::ReadOnly)) {qWarning() << "文件打开失败";return;}while (!file.atEnd()) {// qDebug() << file.readLine(); // 按行读取,会把\t\r\n等转义字符读取进去char c;file.getChar(&c); // 单个字符读取qDebug() << c;}bool b = file.rename("abc.txt"); // 重命名,重命名的文件在当前工程Debug文件夹里面,原文件删除if (b) {qDebug() << file.fileName(); // 如果改名成功,显示当前文件名abc.txtfile.copy("abc.txt", "C:/Users/PVer/Documents/123.txt"); // 把文件拷贝回去}file.remove(); // 如果之前重命名成功了,就是移除abc.txt,如果没重命名成功,就是删除123.txt了file.close(); // 关闭文件,发出了信号,但是要等待系统关闭才关闭qDebug() << file.fileName(); // 这里输出abc.txtQFile file1("C:/Users/PVer/Documents/123.txt");if (!file1.open(QFile::ReadWrite)) {qWarning() << "打开123失败";return;}file1.write("这是新增的内容"); // 写入新内容file1.close();file1.copy("C:/Users/PVer/Documents/123.txt", "cde.txt"); // 如果上一行关闭文件不执行,拷贝的是之前没修改的文件,如果执行了,拷贝的修改后的文件
QTemporaryFile
    QTemporaryFile file("123.txt"); // 创建临时文件if (!file.open()) {qDebug() << "文件打开失败";return;}qInfo() << file.fileName(); // 全局文件名,每次创建的名字不一样,会在后面加随机字符qInfo() << file.fileTemplate(); // 获取临时文件的位置,相对位置file.write("1234");//file.setAutoRemove(false); // 设置临时文件默认不移除,如果不设置,程序结束自动移除

流操作

QTextStream
    QFile file("C:/Users/PVer/Documents/123.txt");if (!file.open(QFile::ReadWrite)) {qWarning() << "文件打开失败";return;}QTextStream ts(&file);// qInfo() << ts.readLine(); // 按行读取// qInfo() << ts.read(100); // 读取100个字节// ts << 2024 << '\n'//    << 2.33 << '\n'//    << "abc" << '\n';int a;QString str;float b;ts >> a >> b >> str;qDebug() << a << b << str;
QDataStream
    QByteArray arr;QDataStream dt(&arr, QIODevice::ReadWrite);int a;dt << 1;qDebug() << arr; // 运行结果"\x00\x00\x00\x01"

QFileInfo

    QFileInfo fi("G:/Qt/MaintenanceTool.exe");if (!fi.exists())return;qInfo() << fi.path(); //"G:/Qt"qInfo() << fi.fileName(); //"MaintenanceTool.exe"qInfo() << fi.baseName(); //"MaintenanceTool"

QDir

    QDir dir("G:/Qt");qDebug() << dir.exists();if (!dir.exists())return;dir.setFilter(QDir::NoDotAndDotDot | QDir::Files); // 排除.和..文件qDebug() << dir.count(); // 输出包含文件数量QFileInfoList fLst = dir.entryInfoList(QStringList() << "*.txt"); // 获取后缀.txt文件信息for (auto& f : fLst)qDebug() << f.fileName();

QFileSystemWatcher

    QFileSystemWatcher* fsc = new QFileSystemWatcher;fsc->addPath("G:/abc/123.TXT");qDebug() << fsc->files();fsc->addPaths(QStringList() << "G:/abc/def"<< "G:/abc/dsds");qDebug() << fsc->directories();connect(fsc, &QFileSystemWatcher::fileChanged, [=] { qDebug() << "文件改变"; });connect(fsc, &QFileSystemWatcher::directoryChanged, [=] { qDebug() << "目录改变"; });

在这里插入图片描述

QStandardPaths

    qInfo() << QStandardPaths::displayName(QStandardPaths::DesktopLocation);qInfo() << QStandardPaths::findExecutable("qtcreator.exe", QStringList() << "G:/Qt/Tools/QtCreator/bin"); // 在当前文件夹中查找可执行程序qInfo() << QStandardPaths::locate(QStandardPaths::DocumentsLocation, "123.txt"); // 文档里面查找,找到就返回地址,找不到就是个空字符串qInfo() << QStandardPaths::writableLocation(QStandardPaths::AppDataLocation); // 目录不一定存在,只是把目录作一个拼接,显示拼接的地址

QSettings

  1. 写入注册表
    QSettings setting("yerennuo", "fileTest");setting.setValue("size", QSize(1280, 720)); // 在注册表里保存

在这里插入图片描述

    setting.beginGroup("window"); // 在新开的组window里写入setting.setValue("pos", QPoint(100, 100));setting.endGroup();

在这里插入图片描述

   QSettings setting1("HKEY_CURRENT_USER\\SOFTWARE\\yerennuo\\fileTest", QSettings::NativeFormat);qDebug() << setting1.value("size").toSize(); // 获取结果QSize(1280, 720)qDebug() << setting1.value("window/pos").toPoint();
  1. 写入ini文件
   QSettings st("config.ini", QSettings::IniFormat);st.setValue("pos", QPoint(200, 200));st.beginGroup("window");st.setValue("rect", QRect(0, 0, 10, 10));st.endGroup();

在debug文件夹会出现一个config.ini
在这里插入图片描述


http://www.ppmy.cn/server/88887.html

相关文章

C++ | Leetcode C++题解之第278题第一个错误的版本

题目&#xff1a; 题解&#xff1a; class Solution { public:int firstBadVersion(int n) {int left 1, right n;while (left < right) { // 循环直至区间左右端点相同int mid left (right - left) / 2; // 防止计算时溢出if (isBadVersion(mid)) {right mid; // 答案…

力扣984.不含AAA或BBB的字符串

力扣984.不含AAA或BBB的字符串 贪心 如下 class Solution {public:string strWithout3a3b(int a, int b) {string res;while(a > b && b > 0){res "aab";a--,a--;b--;}while(b > a && a > 0){res "bba";b--,b--;a--;}whi…

C#实现数据采集系统-modbustcp数据通知

实现数据推送 在ModbusTcp模块中已经能够获取到正确的plc值,接下来做的就是如何让外部调用的程序获取到相关的数据,主要就是两种方法:通过对象属性进行共享;通过事件进行推送 方法一:通过类属性共享 在RegisterPoint类中增加public object Value { get; set; }value属性…

算法之递归算法

递归是非常常见的一种算法&#xff0c; 也比较难以理解&#xff0c;简而言之&#xff0c;递归就是写了一个方法&#xff0c;方法中还调用了该方法&#xff0c;相当于自己调用自己&#xff0c;如果书写不当&#xff0c;就会有堆栈溢出的风险&#xff0c;无法跳出。 所以我们编写…

【CTFWP】ctfshow-web36

文章目录 题目介绍&#xff1a;题目分析&#xff1a;payload&#xff1a;payload解释&#xff1a;flag 题目介绍&#xff1a; <?php/* # -*- coding: utf-8 -*- # Author: h1xa # Date: 2020-09-04 00:12:34 # Last Modified by: h1xa # Last Modified time: 2020-09-…

Power App学习笔记以及基础项目管理demo

Power App学习笔记以及基础项目管理demo 最近学习了一点Power App&#xff0c;感觉挺有意思。配置式组件开发。浅浅记录一下自己实现的项目管理系统&#xff08;即Excel数据的增删改查&#xff09;关于函数的一点皮毛认识。 效果图 筛选数据 编辑 详情 数据源 PowerApp 网…

河北省高校大数据人工智能实验室案例分享

随着大数据和人工智能技术的快速发展&#xff0c;教育领域也迎来了前所未有的变革机遇。泰迪智能科技作为一家专注于大数据与人工智能领域的高新技术企业&#xff0c;一直致力于将前沿技术引入教育行业&#xff0c;助力高校培养更多具有创新能力和实战经验的复合型人才。本次案…

PHP Switch 语句

PHP 中的 switch 语句是一种多路分支语句&#xff0c;它允许一个变量的值对多个代码块进行选择执行。这通常比使用多个 if...elseif...else 语句更清晰、更易于维护。下面将详细介绍 PHP 中 switch 语句的使用方法。 基本语法 switch (n) {case label1:// 如果 n label1&…

<Python><paddle>基于python使用百度paddleocr实现车牌识别

前言 paddleocr是百度飞桨的一个文字识别库&#xff0c;准确度非常高&#xff0c;基于其文字识别的基础&#xff0c;将其用于车牌识别。这个识别的准确度是相当高的。 环境配置 系统&#xff1a;windows 平台&#xff1a;visual studio code 语言&#xff1a;python 库&#…

oracle使用backup as copy方式迁移数据文件

oracle使用backup as copy方式迁移数据文件 1 基础环境 --确认数据文件路径 set line 200 col name for a75 select file#,name from v$datafileFILE# NAME ---------- ---------------------------------------------------------------------------1 /u01/app/oracle/orada…

一些和颜色相关网站

1.中国传统色 2.网页颜色选择器 3.渐变色网站 4.多风格色卡生成 5.波浪生成 6.半透明磨砂框 7.色卡组合

MAC配置环境变量

MAC配置环境变量的地方 1./ext/profile(建议不修改这个文件) 全局&#xff08;共有&#xff09;配置一般不管那个用户&#xff0c;登陆时都会读取该文件。 2./ext.bashrc(一般在这个文件中添加系统级环境变量) 全局&#xff08;公有&#xff09;配置&#xff0c;bash shel…

Leetcode 721.账户合并(hash+dfs)☆

思路&#xff1a; 最核心的地方在于如何合并&#xff1f;这里是通过具有相同的email进行账户的合并&#xff0c;这个相同的email类似于图中的共同节点将两个账户连接起来&#xff0c;所以将原来 账户名 -> 邮件1 邮件2.。。变成hash 邮件1 ->账户id1&#xff0c;账户id2…

WPF启动失败报System.Windows.Automation.Peers.AutomationPeer.Initialize()错误解决

问题描述 win10系统上WPF程序启动后就崩溃&#xff0c;通过查看崩溃日志如下&#xff1a; 应用程序: xxx.exe Framework 版本: v4.0.30319 说明: 由于未经处理的异常&#xff0c;进程终止。 异常信息: System.TypeLoadException 在 System.Windows.Automation.Peers.Automatio…

【C#学习笔记】变量、变量类型

在C#中&#xff0c;变量是存储数据的容器&#xff0c;每个变量都有其特定的数据类型&#xff0c;这决定了变量可以存储的数据类型和大小。以下是关于C#中变量的由浅入深的详细解释&#xff0c;并附带代码示例和解释&#xff1a; 基础概念 定义&#xff1a; 变量是存储数据的容…

深入剖析:GaussDB与MySQL在COUNT查询中的并行化技术

引言 数据库查询性能优化是数据库管理和开发中的一个重要议题。在处理大数据量的COUNT查询时&#xff0c;传统的单线程处理方式可能无法满足现代应用的性能需求。GaussDB(for MySQL)和MySQL作为流行的数据库系统&#xff0c;它们在并行查询优化方面有着各自的策略和技术。本文…

昇思25天学习打卡营第19天| Diffusion扩散模型

扩散模型&#xff0c;特别是Denoising Diffusion Probabilistic Models&#xff08;DDPM&#xff09;&#xff0c;是一种从纯噪声开始&#xff0c;通过逐步去噪生成数据样本的技术。它在图像、音频、视频生成上都取得了不错的成果&#xff0c;比如OpenAI的GLIDE和DALL-E 2。 扩…

Cookie和Session的区别

目录 Cookie是什么 Session是什么 Cookie和Session的区别 Cookie是什么 Cookie是一种用于客户端和服务器之间传递数据的机制。当用户访问一个网站时&#xff0c;服务器可以向用户的浏览器发送一个包含特定信息的Cookie&#xff0c;浏览器则会将该Cookie存储在本地计算机上。…

matlab gui下的tcp client客户端编程框架

GUI界面 函数外定义全局变量 %全局变量 global TcpClient; %matlab作为tcpip客户端 建立连接 在“连接”按钮的回调函数下添加以下代码&#xff1a; global TcpClient;%全局变量 TcpClient tcpip(‘192.168.1.10’, 7, ‘NetworkRole’,‘client’); %连接到服务器地址和端…