天天看點

QT擷取檔案資訊

 //fileinformation.cpp

include "fileinformation.h"

#

FileInformation::FileInformation( QWidget *parent, Qt::WindowFlags  f )    : QDialog( parent, f ){      setWindowTitle(tr("File Information"));           LabelFileName = new QLabel();    LabelFileName->setText(tr("File Name:"));    LineEditFileName = new QLineEdit();       PushButtonFile = new QPushButton( this);    PushButtonFile->setText( tr( "File" ) );    LabelSize = new QLabel();    LabelSize->setText(tr("Size:"));    LineEditSize = new QLineEdit();      LabelCreated = new QLabel();    LabelCreated->setText(tr("Created:"));    LineEditCreated = new QLineEdit();        LabelLastModified = new QLabel();    LabelLastModified->setText(tr("Last Modified:"));    LineEditLastModified = new QLineEdit();        LabelLastRead = new QLabel();    LabelLastRead->setText(tr("Last Read:"));    LineEditLastRead = new QLineEdit();            LabelProperty = new QLabel();    LabelProperty->setText(tr("Property:"));    CheckBoxIsDir = new QCheckBox();    CheckBoxIsDir->setText(tr("Dir"));    CheckBoxIsFile = new QCheckBox();    CheckBoxIsFile->setText(tr("File"));    CheckBoxIsSymLink = new QCheckBox();    CheckBoxIsSymLink->setText(tr("SymLink"));    CheckBoxIsHidden = new QCheckBox();    CheckBoxIsHidden->setText(tr("Hidden"));    CheckBoxIsReadable = new QCheckBox();    CheckBoxIsReadable->setText(tr("Readable"));    CheckBoxIsWritable = new QCheckBox();    CheckBoxIsWritable->setText(tr("Writable"));    CheckBoxIsExecutable = new QCheckBox();    CheckBoxIsExecutable->setText(tr("Executable"));    PushButtonGet = new QPushButton( this);    PushButtonGet->setText( tr("Get" ));        QHBoxLayout *hbLayout1 = new QHBoxLayout ();    hbLayout1->addWidget(LabelFileName);    hbLayout1->addWidget(LineEditFileName);    hbLayout1->addWidget(PushButtonFile);        QHBoxLayout *hbLayout2 = new QHBoxLayout ();    hbLayout2->addWidget(LabelSize);    hbLayout2->addWidget(LineEditSize);    QHBoxLayout *hbLayout3 = new QHBoxLayout();    hbLayout3->addWidget(LabelCreated);    hbLayout3->addWidget(LineEditCreated);        QHBoxLayout *hbLayout4 = new QHBoxLayout();    hbLayout4->addWidget(LabelLastModified);    hbLayout4->addWidget(LineEditLastModified);        QHBoxLayout *hbLayout5 = new QHBoxLayout();    hbLayout5->addWidget(LabelLastRead);    hbLayout5->addWidget(LineEditLastRead);        QHBoxLayout *hbLayout6 = new QHBoxLayout();    hbLayout6->addWidget(LabelProperty);    hbLayout6->addStretch();                QHBoxLayout *hbLayout7 = new QHBoxLayout();    hbLayout7->addWidget(CheckBoxIsDir);    hbLayout7->addWidget(CheckBoxIsFile);    hbLayout7->addWidget(CheckBoxIsSymLink);    hbLayout7->addWidget(CheckBoxIsHidden);    hbLayout7->addWidget(CheckBoxIsReadable);    hbLayout7->addWidget(CheckBoxIsWritable);    hbLayout7->addWidget(CheckBoxIsExecutable);          QVBoxLayout *vbLayout = new QVBoxLayout( this );    vbLayout->addLayout( hbLayout1 );    vbLayout->addLayout( hbLayout2 );    vbLayout->addLayout( hbLayout3 );    vbLayout->addLayout( hbLayout4 );    vbLayout->addLayout( hbLayout5 );    vbLayout->addLayout( hbLayout6 );    vbLayout->addLayout( hbLayout7 );    vbLayout->addWidget( PushButtonGet );    connect(PushButtonFile,SIGNAL(clicked()),this,SLOT(slotFile()));    connect(PushButtonGet,SIGNAL(clicked()),this,SLOT(slotGet()));}FileInformation::~FileInformation(){}void FileInformation::slotFile(){    QString s = QFileDialog::getOpenFileName(   //擷取檔案路徑 this, "open file dialog",        "/",        "files (*)");                                                    LineEditFileName->setText( s.toAscii().data());//檔案路徑}void FileInformation::slotGet(){    QFileInfo info(LineEditFileName->text());    //擷取檔案大小    //在不同的平台上,基本的C++類型如short,char,int,long,long long會有不同的字長。    //最好把它們轉換為qint8,quint8,qint16,quint16,qint32,    //quint32,qint64,quint64,這些類型能確定字長是不随平台改變的。    qint64 size = info.size();    //讀取檔案時間資訊    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();    LineEditSize->setText (QString::number(size));    //顯示檔案時間資訊    LineEditCreated->setText (created.toString());    LineEditLastModified->setText (lastModified.toString());    LineEditLastRead->setText (lastRead.toString());    //顯示檔案屬性    CheckBoxIsDir->setCheckState (isDir?Qt::Checked:Qt::Unchecked);    CheckBoxIsFile->setCheckState (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);}----------------------------------------------------------------------------------------------

//fileinformation.h

#ifndef FILEINFORMATION_H

#define FILEINFORMATION_H#include <QtGui>class FileInformation : public QDialog {    Q_OBJECTpublic:    FileInformation( QWidget *parent=0, Qt::WindowFlags  f=0 );    ~FileInformation();public: QLabel* LabelFileName; QLineEdit* LineEditFileName; QPushButton* PushButtonFile; QLabel* LabelSize; QLineEdit* LineEditSize; QLabel* LabelCreated; QLineEdit* LineEditCreated; QLabel* LabelLastModified ; QLineEdit* LineEditLastModified;   QLabel* LabelLastRead ; QLineEdit* LineEditLastRead; QLabel* LabelProperty ;    QCheckBox* CheckBoxIsDir;  QCheckBox* CheckBoxIsFile; QCheckBox* CheckBoxIsSymLink; QCheckBox* CheckBoxIsHidden; QCheckBox* CheckBoxIsReadable;  QCheckBox* CheckBoxIsWritable;  QCheckBox* CheckBoxIsExecutable;         QPushButton* PushButtonGet;public slots: void slotFile();        void slotGet();};#endif----------------------------------------------------------------------------------------------//main.cpp#include "fileinformation.h"

#include <QApplication>int main( int argc, char **argv ){    QFont font("ZYSong18030",12);    QApplication::setFont(font);         QApplication a( argc, argv );         FileInformation fileinformation;    fileinformation.show();    return a.exec();}----------------------------------------------------------------------------------------------//fileinformation.pro

TEMPLATE = app

TARGET  = fileinformationHEADERS  = fileinformation.hSOURCES  = fileinformation.cpp /    main.cpp

繼續閱讀