QT:获取文件信息之创建日期方法created()方法--废弃

news/2025/10/13 22:24:14/文章来源:https://www.cnblogs.com/samrv/p/19139552

fileinfo.cpp:90:30: warning: 'created' is deprecated: Use either birthTime() or metadataChangeTime()
qfileinfo.h:137:5: note: 'created' has been explicitly marked deprecated here
qglobal.h:294:33: note: expanded from macro 'QT_DEPRECATED_X'
qcompilerdetection.h:676:55: note: expanded from macro 'Q_DECL_DEPRECATED_X'

QFileInfo::created()方法已被标记为废弃(deprecated),建议使用birthTime()或metadataChangeTime()替代

建议使用新方法birthTime()明确表示获取文件出生时间(创建时间),而metadataChangeTime()获取元数据修改时间,语义更清晰。

/**************

 QString file = fileNameLineEdit->text();
    QFileInfo info(file);
    qint64 size = info.size();
   QDateTime created = info.birthTime() ;
*********************/

image

 

头文件 FILEINFO.H 

#ifndef FILEINFO_H
#define FILEINFO_H#include <QDialog>
#include <QLabel>
#include <QLineEdit>
#include <QPushButton>
#include <QCheckBox>
#include <QComboBox>
#include <QGroupBox>class FileInfo : public QDialog
{Q_OBJECTpublic:FileInfo(QWidget *parent = nullptr,Qt::WindowFlags f=0);~FileInfo();public slots:void slotFile();void slotGet();private:QLabel *fileNameLabel;QLineEdit *fileNameLineEdit;QPushButton *fileBtn;QLabel *sizeLabel;QLineEdit *sizeLineEdit;QLabel *createTimeLabel;QLineEdit *createTimeLineEdit;QLabel *lastModifiedLabel;QLineEdit *lastModifiedLineEdit;QLabel *lastReadLabel;QLineEdit *lastReadLineEdit;QLabel *propertyLabel;QCheckBox *isDirCheckBox;QCheckBox *isFileCheckBox;QCheckBox *isSymLinkCheckBox;QCheckBox *isHiddenCheckBox;QCheckBox *isReadableCheckBox;QCheckBox *isWritableCheckBox;QCheckBox *isExecutableCheckBox;//QCheckBox *isCheckBox;QPushButton *getBtn;};
#endif // FILEINFO_H

  

 

源文件fileinfo.cpp 

#include "fileinfo.h"
#include <QHBoxLayout>
#include <QVBoxLayout>
#include <QFileDialog>
#include <QDateTime>FileInfo::FileInfo(QWidget *parent, Qt::WindowFlags f): QDialog(parent, f)
{fileNameLabel = new QLabel(tr("文件名:"));fileNameLineEdit = new QLineEdit;fileBtn = new QPushButton(tr("文件"));sizeLabel = new QLabel(tr("大小:"));sizeLineEdit = new QLineEdit;createTimeLabel = new QLabel(tr("创建时间:"));createTimeLineEdit = new QLineEdit;lastModifiedLabel = new QLabel(tr("最后修改时间:"));lastModifiedLineEdit = new QLineEdit;lastReadLabel = new QLabel(tr("最后访问时间:"));lastReadLineEdit = new QLineEdit;propertyLabel = new QLabel(tr("属性:"));isDirCheckBox = new QCheckBox(tr("目录"));isFileCheckBox = new QCheckBox(tr("文件"));isSymLinkCheckBox = new QCheckBox(tr("符号连接"));isHiddenCheckBox = new QCheckBox(tr("隐藏"));isReadableCheckBox = new QCheckBox(tr("读"));isWritableCheckBox = new QCheckBox(tr("写"));isExecutableCheckBox = new QCheckBox(tr("执行"));//isCheckBox = new QCheckBox(tr(""));getBtn = new QPushButton(tr("获得文件信息"));QGridLayout *gridLayout = new QGridLayout;gridLayout->addWidget(fileNameLabel,0,0);gridLayout->addWidget(fileNameLineEdit,0,1);gridLayout->addWidget(fileBtn,0,2);gridLayout->addWidget(sizeLabel,1,0);gridLayout->addWidget(sizeLineEdit,1,1);gridLayout->addWidget(createTimeLabel,2,0);gridLayout->addWidget(createTimeLineEdit,2,1);gridLayout->addWidget(lastModifiedLabel,3,0);gridLayout->addWidget(lastModifiedLineEdit,3,1,1,2);gridLayout->addWidget(lastReadLabel,4,0);gridLayout->addWidget(lastReadLineEdit,4,1,1,2);//gridLayout->addWidget(,,);QHBoxLayout *layout2 = new QHBoxLayout;layout2->addWidget(propertyLabel);layout2->addStretch();QHBoxLayout *layout3 = new QHBoxLayout;layout3->addWidget(isDirCheckBox);layout3->addWidget(isFileCheckBox);layout3->addWidget(isSymLinkCheckBox);layout3->addWidget(isHiddenCheckBox);layout3->addWidget(isReadableCheckBox);layout3->addWidget(isWritableCheckBox);layout3->addWidget(isExecutableCheckBox);QHBoxLayout *layout4 = new QHBoxLayout;layout4->addWidget(getBtn);QVBoxLayout *mainLayout = new QVBoxLayout(this);mainLayout->addLayout(gridLayout);mainLayout->addLayout(layout2);mainLayout->addLayout(layout3);mainLayout->addLayout(layout4);connect(fileBtn,SIGNAL(clicked()),this,SLOT(slotFile()));connect(getBtn,SIGNAL(clicked()),this,SLOT(slotGet()));
}FileInfo::~FileInfo()
{
}void FileInfo::slotFile()
{QString fileName = QFileDialog::getOpenFileName(this,"打开","/","files(*)");fileNameLineEdit->setText(fileName);
}void FileInfo::slotGet()
{QString file = fileNameLineEdit->text();QFileInfo info(file);qint64 size = info.size();QDateTime created = info.birthTime() ;//  QDateTime created = info.created();QDateTime lastModified = info.lastModified(); //最后修改时间QDateTime lastRead = info.lastRead();bool isDir = info.isDir();bool isFile = info.isFile();bool isSymLink = info.isSymLink();bool isHidden = info.isHidden();bool isReadable = info.isReadable();bool isWritable = info.isWritable();bool isExecutable = info.isExecutable();sizeLineEdit->setText(QString::number(size));createTimeLineEdit->setText(created.toString());lastModifiedLineEdit->setText(lastModified.toString());lastReadLineEdit->setText(lastRead.toString());isDirCheckBox->setCheckState(isDir?Qt::Checked:Qt::Unchecked);isFileCheckBox->setCheckState(isFile?Qt::Checked:Qt::Unchecked);isSymLinkCheckBox->setCheckState(isSymLink?Qt::Checked:Qt::Unchecked);isHiddenCheckBox->setCheckState(isHidden?Qt::Checked:Qt::Unchecked);isReadableCheckBox->setCheckState(isReadable?Qt::Checked:Qt::Unchecked);isWritableCheckBox->setCheckState(isWritable?Qt::Checked:Qt::Unchecked);isExecutableCheckBox->setCheckState(isExecutable?Qt::Checked:Qt::Unchecked);}

  

 

运行效果:

image

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

排列组合 容斥 总结

加法原理 加法原理。很直白的,就是一个用加法来弄的原理。 简单来说,就是做一件事情有 \(n\) 种方法,第 \(i\) 种方法又有 \(a_i\) 个具体的操作方案。那么非常显然,做这件事情就有 \(a_1 + a_2 + \dots + a_{n-1}…

10.13每日总结

今天满课,软件设计+软件开发案例分析+大数据技术+物联网工程,很忙,且开始看中级软件工程师的网课了,,,看起来真的很难,不是我擅长的那一挂,周末外语竞赛的成绩就出来了,,加油!

完整教程:学习 React 前掌握 JavaScript 核心概念

完整教程:学习 React 前掌握 JavaScript 核心概念pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas"…

新学期每日总结(第7天)

今日相较昨日 学习了类与对象

20232422 2025-2026-1 《网络与系统攻防技术》实验一实验报告

实验目的 掌握ELF可执行文件的机器指令修改方法,理解程序执行流控制原理; 理解缓冲区溢出(BOF)漏洞的原理,掌握通过覆盖返回地址改变程序执行流的攻击方法; 学会构造并注入shellcode,理解漏洞利用的完整流程; …

详细介绍:redis特性和应用场景

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

实验记录 2025/10/13

2025/10/13 使用配置:yolo11s.yaml from ultralytics import YOLOdef main():# 1. 并非加载预训练模型(这里用 YOLO11n,也可以换成 yolov11s、best.pt 等)# 而是让YAML 定义自己的网络结构model = YOLO(model=r…

newDay09

1.今天课程比较多,晚上简单复习了面向对象的知识,背背单词 2.明天还是再补补java吧 3.感觉自己基础还是太薄弱了,课堂上很多问题答不出来

正睿25csp七连测day5

题面:这场打得很飞舞,\(40pts,rk54\)。 T1 这道题比较考验思维。 我们可以考虑每个点是从最初序列的哪个位置转移过来了(记为 \(from\))。 不难发现,如果最终序列中的几个位置的 \(from\) 相等,那么这几个位置代…

C/C++ 指针详解与各种指针定义 - 指南

C/C++ 指针详解与各种指针定义 - 指南2025-10-13 22:09 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !i…

14 10.13

上了数据结构 统一建模语言 Java跑步了背了单词

日志|前端框架Vue

Vue是一款用于构建用户界面的渐进式的JavaScript框架1)2)3)v-bindv-onv-if v-else-if v-else = v-showv-forv-实例演示vue生命周期的挂载完成提示

oop.shiyan1

实验1 源代码:1 #include<iostream>2 #include<string>3 #include<vector>4 #include<algorithm>5 6 //模版函数声明7 template<typename T>8 void output(const T& c);9 10 void …

玄机——第一章 应急响应-Linux日志分析 wp

简介 账号root密码linuxrz ssh root@IP 1.有多少IP在爆破主机ssh的root帐号,如果有多个使用","分割 2.ssh爆破成功登陆的IP是多少,如果有多个使用","分割 3.爆破用户名字典是什么?如果有多个使…

第四周第五天4.5

所用时间:180分钟 代码量(行):0 了解到的知识点: 1.无约束问题方法求解 无约束问题的核心求解方法分为解析法和数值迭代法,前者直接求导找最优解,后者通过逐步迭代逼近最优解 解析法仅适用于目标函数可微且能通…

深入解析:flutter AudioPlayer的使用问题及处理

深入解析:flutter AudioPlayer的使用问题及处理pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", …

11 10.10

学习了看书了

12 10.11

出去玩儿了 学习了

P3330 [ZJOI2011] 看电影

思路 第一眼看去好像并没有什么思路,于是我们通过手算或者暴力搜索打了一个表, 当 \(n = 2\) 时,当 \(k\) 变化时,答案如表所示n\ k 1 2 3 41 (1, 1) (2, 2) (3, 3) (4, 4)2 (0, 1) (3, 4) (15, 16) (24, 25)3 (0,…

09 面向对象基础概念的总结

09 面向对象基础概念的总结面向对象 总结类与对象的定义 类是一个模板,是抽象的,将一些元素的共性集合在一起。 对象是具体的实例,创建对象的过程叫做实例化。方法 方法的定义: 修饰符 返回值 函数名 参数 函数体对…