Qt文件信息读取QFileInfo源码分析

实现效果

在这里插入图片描述
需求:
1.通过点击右侧的按钮来选取文件
2.对于文件的各项信息在选完文件后会在下方的单行文本编辑器中打印出来
3.对于文件的各项属性在下面的多选按钮中勾选

界面设计

在这里插入图片描述
利用布局管理器可以对各个部件进行水平,垂直布局
在这里插入图片描述

代码实现

1.按钮实现(选择打开文件)

步骤:

1.利用文件对话框来选择文件
2.在文件名的单行文本编辑器中写入选中文件的路径
3.在自己定义的获取信息方法"getFileInfo(fileName)"以路径为实参进行操作(该方法在后面会出现)

如果不知道文件对话框是怎么回事的同学可以看上一篇博客(*^_^*)

void FileInfo::on_browseFileBtn_clicked()
{
    QString fileName=QFileDialog::getOpenFileName(this,"选择文件",".","file(*)");
    ui->fileNameLineEdit->setText(fileName);
    getFileInfo(fileName);

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

2.getFileInfo方法的实现

先上代码:
都在代码的注释里,大家有兴趣的瞧瞧

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->fileSizeEdit->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->isHindCheckBox->setChecked(bIsHidden);
    ui->isReadableCheckBox->setChecked(bIsReadable);
    ui->isWritedableCheckBox->setChecked(bIsWritable);
    ui->isExecutableCheckBox->setChecked(bIsExcutable);
}

总结

学了Qt也有一段时间了感觉学Qt有一个比较难的一点就是有特别多的单词要记,但是Qt很多的方法都是很容易让人看懂的(见方法就知道是干什么的),还是得多去练习,熟能生巧。
上面主要用到的方法有:
//在这就以info为文件信息对象名了

方法意义)
QFileInfo info(fileName)创建文件信息对象(以文件路径为参数)
info.size()文件大小
info.created()文件创建时间
infor.lastModified()文件最近修改时间
info.lastRead()文件最近访问时间
info.isDir()是否为目录
info.isFile()是否为文件
info.isSymLink()是否为符号链接
info.isHidden()是否为隐藏文件
info.isReadable()是否可读
info.isWritable是否可写
info.isExecutable()是否可执行
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值