QT学习:获取文件详细信息
生活随笔
收集整理的這篇文章主要介紹了
QT学习:获取文件详细信息
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
利用QFileInfo類獲得文件信息,詳細代碼如下:
(1)在頭文件“fileinfo.h”中,類FileInfo繼承自QDialog類,此類中聲明了用到的各種相關控件和函數,其代碼如下:
(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学习:获取文件详细信息的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: QT学习:目录操作与文件系统
- 下一篇: QT学习:监视文件和目录变化