Qt学习之路之获取文件信息
来源:互联网 发布:西西网络图软件 编辑:程序博客网 时间:2024/06/16 21:21
QFileInfo类提供了对文件进行操作时获取的文件信息,包括文件名, 文件大小(字节), 文件创建时间,
文件最后修改时间,文件最近访问时间以及一些文件是否为目录,文件,或者符号连接,和读写等属性。
不废话了,先看看代码~~~~
fileInfo_widget.h
#ifndef FILEWIDGET_H#define FILEWIDGET_H#include <QWidget>#include <QLabel>#include <QTextCodec>//---j解决中文乱码#include <QPushButton>#include <QCheckBox>#include <QLineEdit>#include <QHBoxLayout>#include <QVBoxLayout>#include <QFileDialog>#include <QGridLayout>#include <QDateTime>class FileInfoWidget : public QWidget{Q_OBJECTpublic:FileInfoWidget(QWidget *parent=0); public slots:void slotFile();//-----通过标准文件对话框获取文件名功能void slotGetInfo();//-----获取文件的具体信息private:QLabel *fileNameLabel;QLineEdit *fileNameEdit;QPushButton *openFileBtn;QPushButton *GetFileInfoBtn;QLabel *sizeLabel;//---大小QLineEdit *sizeLabelEdit;QLabel *buildTimeLabel;//--创建时间QLineEdit *buildTimeEdit;QLabel *lastModifiedTimeLabel;//---最近修改时间QLineEdit *lastModifiedEdit;QLabel *lastVisitLabel;//--最后访问时间QLineEdit *lastVisitEidt;QLabel *propertyLabel;//--属性QCheckBox *isDirCheckBox;//--目录QCheckBox *isFileCheckBox;//--文件QCheckBox *isSymbolLinkCheckBox;//--符号连接QCheckBox *isHiddenCheckBox;//--隐藏QCheckBox *isReadableCheckBox;//--读QCheckBox *isWriteableCheckBox;//--写QCheckBox *isExecutableCheckBox;//-执行};#endif//FILEWIDGET_H
#include "fileInfo_widget.h"FileInfoWidget::FileInfoWidget(QWidget *parent/*=0*/):QWidget(parent){//----Qt5解决中文乱码QTextCodec *codec = QTextCodec::codecForName("GB18030");//-----------------------------------fileNameLabel = new QLabel(codec->toUnicode("文件名"));fileNameEdit = new QLineEdit();openFileBtn = new QPushButton(codec->toUnicode("文件"));sizeLabel = new QLabel(codec->toUnicode("大小"));sizeLabelEdit = new QLineEdit();buildTimeLabel = new QLabel(codec->toUnicode("创建时间"));buildTimeEdit = new QLineEdit();lastModifiedTimeLabel = new QLabel(codec->toUnicode("最后修改时间"));lastModifiedEdit = new QLineEdit();lastVisitLabel = new QLabel(codec->toUnicode("最近访问时间"));lastVisitEidt = new QLineEdit();propertyLabel = new QLabel(codec->toUnicode("属性"));isDirCheckBox = new QCheckBox(codec->toUnicode("目录"));isFileCheckBox = new QCheckBox(codec->toUnicode("文件"));isSymbolLinkCheckBox = new QCheckBox(codec->toUnicode("符号连接"));isHiddenCheckBox = new QCheckBox(codec->toUnicode("隐藏"));isReadableCheckBox = new QCheckBox(codec->toUnicode("读"));isWriteableCheckBox = new QCheckBox(codec->toUnicode("写"));isExecutableCheckBox = new QCheckBox(codec->toUnicode("执行"));GetFileInfoBtn = new QPushButton(codec->toUnicode("获取文件信息"));//------布局控件QGridLayout *gridLayout = new QGridLayout();gridLayout->addWidget(fileNameLabel, 0, 0);gridLayout->addWidget(fileNameEdit, 0, 1);gridLayout->addWidget(openFileBtn, 0, 2);gridLayout->addWidget(sizeLabel, 1, 0);gridLayout->addWidget(sizeLabelEdit, 1, 1, 1, 2);gridLayout->addWidget(buildTimeLabel, 2, 0);gridLayout->addWidget(buildTimeEdit, 2, 1, 1, 2);gridLayout->addWidget(lastVisitLabel, 3, 0);gridLayout->addWidget(lastVisitEidt, 3, 1, 1, 2);gridLayout->addWidget(lastVisitLabel, 4, 0);gridLayout->addWidget(lastVisitEidt, 4, 1, 1, 2);QHBoxLayout *hLayout1 = new QHBoxLayout();hLayout1->addWidget(propertyLabel);hLayout1->addStretch();QHBoxLayout *hLayout2 = new QHBoxLayout();hLayout2->addWidget(isDirCheckBox);hLayout2->addWidget(isFileCheckBox);hLayout2->addWidget(isHiddenCheckBox);hLayout2->addWidget(isSymbolLinkCheckBox);hLayout2->addWidget(isReadableCheckBox);hLayout2->addWidget(isWriteableCheckBox);hLayout2->addWidget(isExecutableCheckBox);QHBoxLayout *hLayout3 = new QHBoxLayout();hLayout3->addWidget(GetFileInfoBtn);QVBoxLayout *vLayout = new QVBoxLayout(this);vLayout->addLayout(gridLayout);vLayout->addLayout(hLayout1);vLayout->addLayout(hLayout2);vLayout->addLayout(hLayout3);//---显示布局setLayout(vLayout);//-----设置信号与槽connect(openFileBtn, SIGNAL(clicked()), this, SLOT(slotFile()));connect(GetFileInfoBtn, SIGNAL(clicked()), this, SLOT(slotGetInfo()));//----设置窗口属性setWindowTitle(codec->toUnicode("文件信息"));}//-----通过标准文件对话框获取文件名功能void FileInfoWidget::slotFile(){//----Qt5解决中文乱码QTextCodec *codec = QTextCodec::codecForName("GB18030");QString fileNameStr = QFileDialog :: getOpenFileName(this);fileNameEdit->setText(fileNameStr);}//-----获取文件的具体信息void FileInfoWidget::slotGetInfo(){//----Qt5解决中文乱码QTextCodec *codec = QTextCodec::codecForName("GB18030");//---获取文件名QString fileStr = fileNameEdit->text();QFileInfo fileInfo(fileStr);//---获取文件大小(字节)qint64 size = fileInfo.size();//--获取文件创建时间QDateTime buildTime = fileInfo.created();//--获取文件最近修改时间QDateTime lastMdTime = fileInfo.lastModified();//---获取文件最近访问时间QDateTime lastVisitTime = fileInfo.lastRead();//--获取文件相关属性bool isDir = fileInfo.isDir();bool isFile = fileInfo.isFile();bool isSymLink = fileInfo.isSymLink();bool isHide = fileInfo.isHidden();bool isRead = fileInfo.isReadable();bool isWrite = fileInfo.isWritable();bool isExecu = fileInfo.isExecutable();//--显示属性sizeLabelEdit->setText(QString :: number(size) + codec->toUnicode(" 字节"));buildTimeEdit->setText(buildTime.toString());lastModifiedEdit->setText(lastMdTime.toString());lastVisitEidt->setText(lastVisitTime.toString());isDirCheckBox->setCheckState(isDir ? Qt::Checked : Qt :: Unchecked);isFileCheckBox->setCheckState(isFile ? Qt::Checked : Qt :: Unchecked);isSymbolLinkCheckBox->setCheckState(isSymLink ? Qt::Checked : Qt :: Unchecked);isHiddenCheckBox->setCheckState(isHide ? Qt::Checked : Qt :: Unchecked);isReadableCheckBox->setCheckState(isRead ? Qt::Checked : Qt :: Unchecked);isWriteableCheckBox->setCheckState(isWrite ? Qt::Checked : Qt :: Unchecked);isExecutableCheckBox->setCheckState(isExecu ? Qt::Checked : Qt :: Unchecked);}</span></strong>main.cpp
#pragma once#include <QtWidgets/QApplication>#include "fileInfo_widget.h"int main(int argc, char *argv[]){QApplication a(argc, argv);FileInfoWidget win;win.show();return a.exec();}
运行结果:
更多关于QFileInfo类的使用,请参考assistant。
0 0
- Qt学习之路之获取文件信息
- Qt文件信息获取之QFileInfo
- Qt学习之路之文件浏览器
- Qt学习之路——— 获取本机网络信息
- Qt学习 之 文件
- QT之文件路径获取
- QT之获取光标所在行信息
- QT之HTTP下载获取文件大小信息
- Qt网络编程之获取网络信息
- qt之获取本机网络信息
- QT获取文件信息
- QT获取文件信息
- QT获取文件信息
- Qt获取文件信息
- Qt学习——qt文件信息的获取
- Qt学习之路之获取本机IP
- Qt 之 模仿迅雷 根据Url获取文件信息——上
- Qt 之 模仿迅雷 根据Url获取文件信息——下
- VS 打开项目时报"无法加载一个或多个断点" 问题处理
- Android开发之Canvas基本使用、Canvas裁剪和Region、RegionIterator
- Sum Root to Leaf Numbers
- python 之 lambda 表达式的基本用法
- 使用过spring mvc的一定都感受到了注解的方便和强大吧,现在我让我们看springmvc注解的优点
- Qt学习之路之获取文件信息
- C#基础知识之九
- 考99分倒数第三
- VC/MFC 进程间通信方法总结
- 抄袭,借鉴?
- amd mac10.9.4 xcode6
- 一道淘汰85%面试者的百度开发者面试题
- OJ指针——输入n个数和输出调整后的n个数
- SD/MMC