Qt的QFileInfo

文章目录


QFileInfo是用来获取文件信息的,我们一起来看一下能获取什么,怎么获取这些信息吧!

QFileInfo的详细说明

1.QFileInfo类提供与系统无关的文件信息。

2.QFileInfo提供关于文件系统中文件的名称和位置(路径)、它的访问权限以及它是目录还是符号链接等信息。

3.文件的大小和最后修改/读取时间也可用。

4.QFileInfo还可以用来获取关于Qt资源的信息。

5.QFileInfo可以指向具有相对或绝对文件路径的文件。

6.绝对文件路径以目录分隔符“/”开头(或在Windows中以驱动器规范开头)。相对文件名以目录名开头,并指定相对于当前工作目录的路径。绝对路径的一个例子是字符串“/tmp/quartz”。相对路径可能类似于“src/fatlib”。

7.可以使用isRelative()函数检查QFileInfo使用的是相对文件路径还是绝对文件路径。

8.您可以调用makeAbsolute()函数来转换相对的QFileInfo

9.QFileInfo处理的文件在构造函数中设置,或稍后使用setFile()设置。使用exists()查看文件是否存在,使用size()获取文件大小

10.文件的类型通过isFile()、isDir()和isSymLink()获得。函数的作用是:提供符号链接指向的文件的名称

11.在Unix上(包括Mac OS X),符号链接的大小()与它指向的文件大小相同,因为Unix透明地处理符号链接;类似地,使用QFile打开符号链接可以有效地打开链接的目标

12.在Windows上,符号链接(快捷方式)是.lnk文件。报告的size()是符号链接的大小(不是链接的目标),使用QFile打开符号链接将打开.lnk文件

QFileInfo的构造函数

QFileInfo()


构造一个空的QFileInfo对象。
注意,空的QFileInfo对象不包含任何文件引用

QFileInfo(const QString & file)


构造一个新的QFileInfo,提供有关给定file的信息。该file还可以是绝对路径或相对路径

QFileInfo(const QFile & file)


如果 file有一个相对路径,QFileInfo也将有一个相对路径

QFileInfo(const QDir & dir, const QString & file)


构造一个新的QFileInfo,它在目录dir中提供有关给定文件的信息。
如果dir有一个相对路径,那么QFileInfo也将有一个相对路径
如果文件是绝对路径,那么由dir指定的目录将被忽略

QFileInfo(const QFileInfo & fileinfo)


构造一个新的QFileInfo,它是给定fileinfo的副本

例子哟

widget.h

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QFileInfo>	//引用文件信息头文件

namespace Ui {
   
class Widget;
}

class Widget : public QWidget
{
   
    Q_OBJECT

public:
    explicit Widget(QWidget *parent = 0);
    ~Widget();

//ui界面  转到槽
private slots:
    void on_but_getFileName_clicked();

    void on_but_getFileSuffix_clicked();

    void on_but_getDirPath_clicked();

    void on_but_getFilePath_clicked();

    void on_IfFun_clicked();
	
	void on_pushButton_clicked();
private:
    Ui::Widget *ui;
    QFileInfo info;	//在这里创建了一个空的文件信息对象
    QFileInfo infoTwo;
};

#endif // WIDGET_H

main.cpp不变。。。。。。。。。。。

widget.cpp

#include "widget.h"
#include "ui_widget.h"
#include <QDir>     //文件夹类
#include <QDebug>   //调试输出类
#include <QDateTime>//时间类

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
   
    ui->setupUi(this);

	//设置文件路径信息
    info.setFile("E:/2019/QT/新建文本文档.txt.txt");

    //当exists() 返回true,文件存在
    if(info.exists())
    {
   
        ui->textEdit->setText("文件路径:E:/2019/QT/新建文本文档.txt.txt");
        ui->textEdit->append("文本存在");

        //文件创建时间
        QString str = QString("info.created(): %1")
                .arg(info.created().toString("yyyy-MM-dd HH:mm:ss"));
        ui->textEdit->append(str);

        //文件最后一次修改的时间(返回值是QDateTime类型,所以要引用那个头文件)
        str = QString("info.lastModified(): %1")
                        .arg(info.lastModified().toString("yyyy-MM-dd HH:mm:ss"));
        ui->textEdit->append(str);

        //文件最后一次打开的时间(返回值是QDateTime类型)
        str = QString("info.lastRead(): %1")
                        .arg(info.lastRead().toString("yyyy-MM-dd HH:mm:ss"));
        ui->textEdit->append(str);

        //返回文件大小(字节)
        str = QString("info.size(): %1")
                        .arg(info.size());
        ui->textEdit->append(str);

        //刷新文件
        info.refresh();
    }
    else
    {
   
        ui->textEdit->append("文本不存在");
    }

}

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

//获取文件名
void Widget::on_but_getFileName_clicked()
{
   
    ui->textEdit->append("\n获取文件名----------------------------");

    //返回文件名,获取全部后缀
    QString str = QString("info.fileName(): %1").
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值