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

运行结果

目录:

文件:

相关推荐
九转成圣6 小时前
Java 性能优化实战:如何将海量扁平数据高效转化为类目字典树?
java·开发语言·json
SmartRadio6 小时前
ESP32-S3 双模式切换实现:兼顾手机_路由器连接与WiFi长距离通信
开发语言·网络·智能手机·esp32·长距离wifi
laowangpython6 小时前
Rust 入门:GitHub 热门内存安全编程语言
开发语言·其他·rust·github
我叫汪枫6 小时前
在后台管理系统中,如何递归和选择保留的思路来过滤菜单
开发语言·javascript·node.js·ecmascript
_.Switch6 小时前
东方财富股票数据JS逆向:secids字段和AES加密实战
开发语言·前端·javascript·网络·爬虫·python·ecmascript
软件技术NINI6 小时前
webkit简介及工作流程
开发语言·前端·javascript·udp·ecmascript·webkit·yarn
Brendan_0016 小时前
JavaScript的Stomp.over
开发语言·javascript·ecmascript
念2346 小时前
f5 shape分析
开发语言·javascript·ecmascript
苍穹之跃6 小时前
某量JS逆向
开发语言·javascript·ecmascript
思茂信息6 小时前
CST软件如何进行参数化扫描?
运维·开发语言·javascript·windows·ecmascript·软件工程·软件需求