QT:获取文件信息之创建日期方法created()方法--废弃
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() ;
*********************/
头文件 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_OBJECT public: 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); }
运行效果:
优质生活从拆开始