日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

QT学习:获取文件详细信息

發布時間:2024/9/30 c/c++ 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 QT学习:获取文件详细信息 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

利用QFileInfo類獲得文件信息,詳細代碼如下:
(1)在頭文件“fileinfo.h”中,類FileInfo繼承自QDialog類,此類中聲明了用到的各種相關控件和函數,其代碼如下:

#include <QDialog> #include <QLabel> #include <QLineEdit> #include <QPushButton> #include <QCheckBox> class FileInfo : public QDialog {Q_OBJECT public:FileInfo(QWidget *parent = 0,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;QPushButton *getBtn; };

(2)源文件“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("執行"));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,1,2);gridLayout->addWidget(createTimeLabel,2,0);gridLayout->addWidget(createTimeLineEdit,2,1,1,2);gridLayout->addWidget(lastModifiedLabel,3,0);gridLayout->addWidget(lastModifiedLineEdit,3,1,1,2);gridLayout->addWidget(lastReadLabel,4,0);gridLayout->addWidget(lastReadLineEdit,4,1,1,2);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())); }

槽函數slotFile()完成通過標準文件對話框獲得所需要文件的文件名功能,其具體內容如下:

void FileInfo::slotFile() { QString fileName = QFileDialog::getOpenFileName(this,"打開","/", "files (*)"); fileNameLineEdit->setText(fileName); }

槽函數slotGet()通過QFileInfo獲得具體的文件信息,其具體內容如下:

void FileInfo::slotGet() {QString file = fileNameLineEdit->text();QFileInfo info(file); //根據輸入參數創建一個QFileInfo對象qint64 size = info.size(); //獲得QFileInfo對象的大小QDateTime created = info.created();//獲得QFileInfo對象的創建時間QDateTime lastModified = info.lastModified();//獲得QFileInfo對象的最后修改時間QDateTime lastRead = info.lastRead();//獲得QFileInfo對象的最后訪問時間/* 判斷QFileInfo對象的文件類型屬性 */bool isDir = info.isDir(); //是否為目錄bool isFile = info.isFile(); //是否為文件bool isSymLink = info.isSymLink(); bool isHidden = info.isHidden(); //判斷QFileInfo對象的隱藏屬性bool isReadable = info.isReadable(); //判斷QFileInfo對象的讀屬性bool isWritable = info.isWritable(); //判斷QFileInfo對象的寫屬性bool isExecutable = info.isExecutable();//判斷QFileInfo對象的可執行屬性/* 根據上面得到的結果更新界面顯示 */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); }

(3)運行結果如下圖所示。選擇想查看的文件,即可查看文件信息。

總結

以上是生活随笔為你收集整理的QT学习:获取文件详细信息的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。