【QT】QFileInfo文件信息读取

基于上节:【QT】文件读写-CSDN博客

 //文件信息类
            QFileInfo info(filePath);
            qDebug() << "后缀名:" << info.suffix() << "大小:"<< info.size()
                     << "文件名:" << info.fileName() << "文件路径" << info.filePath();

效果

去掉双引号

 //文件信息类
            QFileInfo info(filePath);
            qDebug() << "后缀名:" << info.suffix().toUtf8().data() << "大小:"<< info.size()
                     << "文件名:" << info.fileName().toUtf8().data() << "文件路径" << info.filePath().toUtf8().data();

效果

打印QDateTime

            // 创建日期
            qDebug() << "创建日期" << info.birthTime().toString("yyyy-MM-dd hh:mm:ss")
                     << "最后修改日期:" << info.lastModified().toString("yyyy/MM/dd hh:mm:ss");

效果

全部代码

#include "widget.h"
#include "ui_widget.h"
#include <QPushButton>
#include <QFileDialog>
#include <QMessageBox>
#include <QFile>
#include <QTextCodec>
#include <QFileInfo>
#include <QDebug>
#include <QDateTime>

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);

    // 点击选择文件按钮。弹出问价对话框,读取文件,将文件路径放入在lineEdit,内容放在TextEdit
    connect(ui->addFile, &QPushButton::clicked, this, [=]() {
        // 弹出对话框
        // 父窗口,标题,路径,过滤格式。返回值是路径
        QString filePath = QFileDialog::getOpenFileName(this, "打开文件", "D:\\code\\QT\\demo22", "(*.txt)");
        // 判断空路径
        if (filePath.isEmpty()) {
            QMessageBox::warning(this, "警告", "路径不能为空");
        } else {
            ui->lineEdit->setText(filePath);
            // 读取文件信息
            QFile file(filePath);
            // 指定打开方式,只读
            file.open(QIODevice::ReadOnly);
            // 读取全部信息
            QByteArray arr;
//            arr = file.readAll();             // 读所有

            // 按行读
            while (!file.atEnd()) {
                arr += file.readLine();
            }
            // 将内容放在TextEdit,默认支持utf-8
            ui->textEdit->setText(arr);

            // 关闭文件
            file.close();
            // 写文件,会覆盖前面的内容
//            file.open(QIODevice::WriteOnly);
            file.open(QIODevice::Append);         // 追加
            file.write("123456789");
            file.close();




//            // 提前指定编码格式
//            QTextCodec* codec = QTextCodec::codecForName("gbk");
//            ui->lineEdit->setText(filePath);
//            // 读取文件信息
//            QFile file(filePath);
//            // 指定打开方式,只读
//            file.open(QIODevice::ReadOnly);
//            // 读取全部信息
//            QByteArray arr;
//            arr = file.readAll();
//            // 将内容放在TextEdit,
//            ui->textEdit->setText(codec->toUnicode(arr));
//            file.close();

            //文件信息类
            QFileInfo info(filePath);
            qDebug() << "后缀名:" << info.suffix().toUtf8().data() << "大小:"<< info.size()
                     << "文件名:" << info.fileName().toUtf8().data() << "文件路径" << info.filePath().toUtf8().data();



            // 创建日期
            qDebug() << "创建日期" << info.birthTime().toString("yyyy-MM-dd hh:mm:ss")
                     << "最后修改日期:" << info.lastModified().toString("yyyy/MM/dd hh:mm:ss");

        }


    });
}

Widget::~Widget()
{
    delete ui;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/115842.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

k8s:endpoint

在 Kubernetes 中&#xff0c;Endpoint 是一种 API 对象&#xff0c;它用于表示集群内某个 Service 的具体网络地址。换句话说&#xff0c;它连接到一组由 Service 选择的 Pod&#xff0c;从而使它们能够提供服务。每个 Endpoint 对象都与相应的 Service 对象具有相同的名称&am…

虹科干货 | 手把手教你通过CODESYS V3进行PLC编程(一)

文章来源&#xff1a;虹科工业控制团队 阅读原文&#xff1a;https://mp.weixin.qq.com/s/5gDXPulm8qz075H6lEmGWg 教程背景 虹科MC系列模块化控制器是基于Raspberry Pi的高性能4核控制器&#xff0c;运动控制循环时间最快可达500微秒&#xff0c;实现了计算能力和成本之间的…

【rust/esp32】初识slint ui框架并在st7789 lcd上显示

文章目录 说在前面关于slint关于no-std关于dma准备工作相关依赖代码结果参考 说在前面 esp32版本&#xff1a;s3运行环境&#xff1a;no-std开发环境&#xff1a;wsl2LCD模块&#xff1a;ST7789V2 240*280 LCDSlint版本&#xff1a;master分支github地址&#xff1a;这里 关于s…

MySQL - Zero date value prohibited

问题: timestamp字段报Caused by: com.mysql.cj.exceptions.DataReadException: Zero date value prohibited 原因: timestamp字段存入了0值, 超出了最小值1900-01-01 00:00:00, 转Java对象的时候报错 解决: 1.修复或删除原数据 2. mysqlurl 中添加zeroDateTimeBehaviorconve…

云计算的思想、突破、产业实践

文章目录 &#x1f4d5;我是廖志伟&#xff0c;一名Java开发工程师、Java领域优质创作者、CSDN博客专家、51CTO专家博主、阿里云专家博主、清华大学出版社签约作者、产品软文创造者、技术文章评审老师、问卷调查设计师、个人社区创始人、开源项目贡献者。&#x1f30e;跑过十五…

02 线性组合、张成的空间与基

线性组合、张成的空间与基 基向量缩放向量并相加给定向量张成的空间线性相关与线性无关空间的基 这是关于3Blue1Brown "线性代数的本质"的学习笔记。 基向量 当看到一对描述向量的数时&#xff0c;比如[3,-2]时&#xff0c;把这对数中的每个数&#xff08;坐标&…

New Maven Project

下面两个目录丢失了&#xff1a; src/main/java(missing) src/test/java(missing) 换个JRE就可以跑出来了 变更目录

Leetcode实战

我们今天来利用这段时间的学习实操下我们的oj题。 int removeElement(int* nums, int numsSize, int val){int dst0;int src0;while(src<numsSize){if(nums[src]!val){nums[dst]nums[src];}elsesrc;}return dst;}我们这里用用两个下标&#xff0c;src来移动&#xff0c;如果…

Spring | Sring Task (定时任务框架) 、微信小程序开发

目录&#xff1a; 一、Sring Task (定时任务框架) &#xff1a;Sring Task介绍Spring Task应用场景corn表达式corn表达式在线生成器SpringTask入门案例&#xff1a;导入maven依赖启动类上添加 EnableScheduling 注解定时方法上添加 Scheduled( cron “xxxxx” ) 注解自定义“定…

【蓝桥每日一题]-倍增(保姆级教程 篇1)

今天讲一下倍增 目录 题目&#xff1a;忠诚 思路&#xff1a; 题目&#xff1a;国旗计划 思路&#xff1a; 查询迭代类倍增&#xff1a; 本质是一个一个选区间使总长度达到 M,类似凑一个数。而我们会经常用不大于它最大的二的次幂&#xff0c;减去之后&#xff0c;再重复这…

ubuntu22.04安装公司安全VPN的方案

公司为了安全设置VPN,但是liunxVPN工具不好用&#xff0c;今天找了一个好用的VPN工具 https://www.leagsoft.com/doc/article/103107.html 有各种版本&#xff0c;支持IOS和android等系统。 安装步骤 1/下载安装程序 https://www.leagsoft.com/doc/article/103107.html 2 …

vim三种模式,文本操作(操作字符/光标,列出行号可视化块模式/多文件查看)

目录 vim--文本编辑器 功能 基本概念 命令/默认模式 插入模式 底行模式 文本操作 引入 移动光标位置 删除字符 -- x/dd 复制/粘贴字符 -- yw/yyp 替换文本 -- r / %s 底行模式 全局替换 -- /g 撤销操作 -- u / ctrlr 修改字符 -- cw 示例 跳行 -- ctrlg 底行…

Vue的虚拟dom和diff算法

一、是什么 diff算法是一种通过同层级的树节点进行比较的高效算法 diff算法是为了进行精细化比对&#xff0c;最小量更新的 特点&#xff1a; 1.同级比较&#xff1a;比较只在同层级进行 2.首尾指针法&#xff1a;从两边向组件比较 比较方式/策略&#xff1a;深度优先&#xff…

家政APP开发服务同城预约维修接单管理系统软件小程序

家政服务小程序是一个基于移动端的家政服务平台&#xff0c;为用户提供方便快捷的家政服务。以下是小程序的主要功能&#xff1a; 1. 家政服务内容展示&#xff1a;商家可以在小程序中展示各种家政服务项目&#xff0c;如清洁、保洁、保姆、月嫂、钟点工等。用户可以浏览服务信…

Ubuntu下安装vscode,并解决终端打不开vscode的问题

Visual Studio Code安装 1&#xff0c;使用 apt 安装 Visual Studio Code 在官方的微软 Apt 源仓库中可用。按照下面的步骤进行即可&#xff1a; 以 sudo 用户身份运行下面的命令&#xff0c;更新软件包索引&#xff0c;并且安装依赖软件&#xff1a; sudo apt update sud…

[自定义 Vue 组件] 小尾巴下拉菜单组件(2.0) TailDropDown

文章归档&#xff1a;https://www.yuque.com/u27599042/coding_star/kcoem6dgyn8drglb [自定义 Vue 组件] 下拉菜单(1.0) DropDownMenu&#xff1a;https://www.yuque.com/u27599042/coding_star/llltv52tchmatwg4 组件效果示例 组件所依赖的常量 在 src 目录下&#xff0c;创…

Redis中Hash类型的命令

目录 哈希类型的命令 hset hget hexists hdel hkeys hvals hgetall hmget hlen hsetnx hincrby hincrbyfloat 内部编码 Hash类型的应用场景 作为缓存 哈希类型和关系型数据库的两点不同之处 缓存方式对比 Redis自身已经是键值对的结构了,Redis自身的键值对就…

顺序栈练习

顺序栈练习 相关内容&#xff1a; 1.判断顺序栈栈满的两种方式 2.一张图理解栈顶指针加加减减的问题 3.栈的顺序存储结构&#xff08;顺序栈&#xff09; //顺序栈的初始化、判空、入栈、出栈、读取栈顶元素 //顺序栈的结构&#xff1a;数组、栈顶指针(本质是下标) #include&…

【k8s】pod详解

一、Pod介绍 1、Pod的基础概念 Pod是kubernetes中最小的资源管理组件&#xff0c;Pod也是最小化运行容器化应用的资源对象&#xff0c;一个pod代表着集群中运行的一个进程。kubernetes中其它大多数组件都是围绕着pod来进行支持和扩展pod功能的。 例如&#xff0c;用于管理po…

最新ChatGPT商业运营系统源码+支持GPT4/支持ai绘画+支持Midjourney绘画

一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统&#xff0c;支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如…