您的位置:首页 > 编程语言 > Qt开发

QT获取文件信息

2015-09-19 17:24 330 查看
http://www.cnblogs.com/rollenholt/archive/2012/04/10/2440932.html

效果图如下:





代码:

FileInformation.h

/********************************************************************
created:	2012/04/10
created:	10:4:2012   17:10
filename: 	F:\C++\FileInformation\FileInformation\fileinformation.h
file path:	F:\C++\FileInformation\FileInformation
file base:	fileinformation
file ext:	h
author:		Rollen Holt

purpose:	The head File of this project
*********************************************************************/
#ifndef FILEINFORMATION_H
#define FILEINFORMATION_H

#include <QtGui>   //in order to convenient, don't recommend.
#include "ui_fileinformation.h"

class FileInformation : public QDialog
{
Q_OBJECT

public:
FileInformation(QWidget *parent = 0, Qt::WFlags flags = 0);
~FileInformation();

private:
Ui::FileInformationClass ui;

QLabel *fileNameLabel;
QLineEdit *fileNameLineEdit;
QPushButton *fileButton;

QLabel *fileSize;
QLineEdit *fileLineEditSize;

QLabel *fileCreatLabel;
QLineEdit *fileCreatLineEdit;

QLabel *fileLastModifyLabel;
QLineEdit *fileLastModifLineEdit;

QLabel *fileLastVisitedLabel;
QLineEdit *fileLastVisitedLineEdit;

QLabel *filePropertyLabel;
QCheckBox *checkIsDir;
QCheckBox *checkIsFile;
QCheckBox* checkBoxIsSymLink;
QCheckBox* checkBoxIsHidden;
QCheckBox* checkBoxIsReadable;
QCheckBox* checkBoxIsWritable;
QCheckBox* checkBoxIsExecutable;

QPushButton* PushButtonGet;

void getFileInformation(QString fileName);

private slots:
void slotFile();
void slotGet();
};

#endif // FILEINFORMATION_H


fileInformation.cpp

#include "fileinformation.h"

FileInformation::FileInformation(QWidget *parent, Qt::WFlags flags)
: QDialog(parent, flags)
{
ui.setupUi(this);
setWindowTitle(tr("File Information"));

fileNameLabel=new QLabel(tr("File Name"));
fileNameLineEdit=new QLineEdit();
fileButton=new QPushButton(tr("Open"));
QHBoxLayout *layout1=new QHBoxLayout();
layout1->addWidget(fileNameLabel);
layout1->addWidget(fileNameLineEdit);
layout1->addWidget(fileButton);

fileSize=new QLabel(tr("File Size"));
fileLineEditSize=new QLineEdit();
QHBoxLayout *layout2=new QHBoxLayout();
layout2->addWidget(fileSize);
layout2->addWidget(fileLineEditSize);

fileCreatLabel=new QLabel(tr("Creat Time"));
fileCreatLineEdit=new QLineEdit();
QHBoxLayout *layout3=new QHBoxLayout();
layout3->addWidget(fileCreatLabel);
layout3->addWidget(fileCreatLineEdit);

fileLastModifyLabel=new QLabel(tr("Last Modify Time"));
fileLastModifLineEdit=new QLineEdit();
QHBoxLayout *layout4=new QHBoxLayout();
layout4->addWidget(fileLastModifyLabel);
layout4->addWidget(fileLastModifLineEdit);

fileLastVisitedLabel=new QLabel(tr("Last Visited Time"));
fileLastVisitedLineEdit=new QLineEdit();

filePropertyLabel=new QLabel(tr("File Property"));
checkIsDir=new QCheckBox(tr("Menu"));
checkIsFile=new QCheckBox(tr("File"));
checkBoxIsSymLink=new QCheckBox(tr("SymLink"));
checkBoxIsReadable=new QCheckBox(tr("Readable"));
checkBoxIsWritable=new QCheckBox(tr("Writeable"));
checkBoxIsHidden=new QCheckBox(tr("Hodden"));
checkBoxIsExecutable=new QCheckBox(tr("Executable"));
QHBoxLayout *layout5=new QHBoxLayout();
layout5->addWidget(filePropertyLabel);
layout5->addWidget(checkIsDir);
layout5->addWidget(checkIsFile);
layout5->addWidget(checkBoxIsSymLink);
layout5->addWidget(checkBoxIsReadable);
layout5->addWidget(checkBoxIsWritable);
layout5->addWidget(checkBoxIsExecutable);

PushButtonGet=new QPushButton(tr("Get File Information"));

// main layout
QVBoxLayout *mainLayout=new QVBoxLayout();
mainLayout->addLayout(layout1);
mainLayout->addLayout(layout2);
mainLayout->addLayout(layout3);
mainLayout->addLayout(layout4);
mainLayout->addLayout(layout5);
mainLayout->addWidget(PushButtonGet);
setLayout(mainLayout);

connect(fileButton,SIGNAL(clicked()),this,SLOT(slotFile()));
connect(PushButtonGet,SIGNAL(clicked()),this,SLOT(slotGet()));
}

FileInformation::~FileInformation()
{

}

/*
* Get file information
**/
void FileInformation::getFileInformation(QString fileName){
QFileInfo info(fileName);

qint64 size=info.size();
QDateTime creatTime=info.created();
QDateTime lastModifyTime=info.lastModified();
QDateTime lastReadTime=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();

fileLineEditSize->setText(QString::number(size));
fileCreatLineEdit->setText(creatTime.toString());
fileLastModifLineEdit->setText(lastModifyTime.toString());
fileLastVisitedLineEdit->setText(lastReadTime.toString());

checkIsDir->setCheckable(isDir?Qt::Checked:Qt::Unchecked);
checkIsFile->setCheckable(isFile?Qt::Checked:Qt::Unchecked);
checkBoxIsSymLink->setCheckState (isSymLink?Qt::Checked:Qt::Unchecked);
checkBoxIsHidden->setCheckState (isHidden?Qt::Checked:Qt::Unchecked);
checkBoxIsReadable->setCheckState (isReadable?Qt::Checked:Qt::Unchecked);
checkBoxIsWritable->setCheckState (isWritable?Qt::Checked:Qt::Unchecked);
checkBoxIsExecutable->setCheckState (isExecutable?Qt::Checked:Qt::Unchecked);
}

/*
*	Open file
**/
void FileInformation::slotFile(){
QString s=QFileDialog::getOpenFileName(this,tr("open file"),"/","files(*)");
fileNameLineEdit->setText(s.toAscii());
}

void FileInformation::slotGet(){
getFileInformation(fileNameLineEdit->text());
}


main.cpp

#include "fileinformation.h"
#include <QtGui/QApplication>

int main(int argc, char *argv[])
{
QApplication a(argc, argv);
FileInformation *w=new FileInformation();
w->show();
return a.exec();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: