Qt文件信息

QFileInfo

Headers

fileinfo.h

cpp 复制代码
#ifndef FILEINFO_H
#define FILEINFO_H

#include <QWidget>

namespace Ui {
class FileInfo;
}

class FileInfo : public QWidget
{
    Q_OBJECT

public:
    explicit FileInfo(QWidget *parent = 0);
    ~FileInfo();
    void getFileInfo(QString & fileName);

private slots:
    void on_browseFileBTtn_clicked();

private:
    Ui::FileInfo *ui;
};

#endif // FILEINFO_H

Sources

fileinfo.cpp

cpp 复制代码
#include "fileinfo.h"
#include "ui_fileinfo.h"
#include <QFileDialog>
#include <QDateTime>
FileInfo::FileInfo(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::FileInfo)
{
    ui->setupUi(this);
    setWindowTitle("文件信息");
}

FileInfo::~FileInfo()
{
    delete ui;
}

void FileInfo::getFileInfo(QString &fileName)
{
        QFileInfo info(fileName);

        qint64 size = info.size(); //文件大小
        QDateTime createTime = info.created();  //文件创建日期
        QDateTime lastMTime = info.lastModified();  //文件最后修改时间
        QDateTime lastRTime = info.lastRead();      //文件最近访问时间

        //文件的属性信息
        bool bIsDir = info.isDir();     //文件是否是目录
        bool BIsFile = info.isFile();   //文件是否是文件
        bool bIsSymLink = info.isSymLink();
        bool bIsHidden = info.isHidden();
        bool bIsReadable = info.isReadable();
        bool bIsWritable = info.isWritable();
        bool bIsExcutable = info.isExecutable();

        ui->FileSizeLineEidt->setText(QString::number(size));
        ui->FileCreateLineEdit->setText(createTime.toString());
        ui->FileModifyLineEdit->setText(lastMTime.toString());
        ui->FileReadLineEdit->setText(lastRTime.toString());

        ui->isDirCheckBox->setChecked(bIsDir);
        ui->isFileCheckBox->setChecked(BIsFile);
        ui->isSymLinkCheckBox->setChecked(bIsSymLink);
        ui->isHiddenCheckBox->setChecked(bIsHidden);
        ui->isWritableCheckBox->setChecked(bIsWritable);
        ui->isReadableCheckBox->setChecked(bIsReadable);
        ui->isExecutableCheckBox->setChecked(bIsExcutable);
}

void FileInfo::on_browseFileBTtn_clicked()
{
    QString fileName = QFileDialog::getOpenFileName(this,
                                                    "打开文件",
                                                    ".",
                                                    "files(*)");

//    QString path = QFileDialog::getExistingDirectory(this,
//                                                     "选择目录",
//                                                     ".");
    ui->FileNameLineEdit->setText(fileName);
    getFileInfo(fileName);
}

main.cpp

cpp 复制代码
#include "fileinfo.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    FileInfo w;
    w.show();

    return a.exec();
}

Forms

fileinfo.ui

运行结果

目录:

文件:

相关推荐
xcyxiner14 小时前
DicomViewer (目录调整) 2
qt
xcyxiner16 小时前
dcmtk vtk vtk-dicom(gdcm) 编译(debug) v2
qt
LDR0062 天前
Type-C 快充全面升级!LDR6601 赋能个人护理便携电机,重塑剃须刀 / 理发器新体验
c语言·开发语言
雪碧聊技术2 天前
Tree.js是什么?一文讲透
开发语言·javascript·ecmascript
码云数智-园园3 天前
C++20 Modules 模块详解
java·开发语言·spring
swordbob3 天前
NIO的channel中什么是 fd(File Descriptor,文件描述符)
java·开发语言·nio
源分享3 天前
Java线程同步的多种实现方法(非常详细)
java·开发语言·jvm
Luminous.3 天前
C语言--day30
c语言·开发语言
何以解忧,唯有..3 天前
Go语言循环语句详解:for、range与循环控制
开发语言·算法·golang
謓泽3 天前
C语言不是语法,是通往机器的地图。
c语言·开发语言