文章目录
- QFileInfo的详细说明
- QFileInfo的构造函数
- 例子哟
- 公有方法
-
- 不是判断的函数---------------------------------------------------------
- 判断的函数------------------------------------------------------------------
-
- 判断文件存不存在:exists()
- 判断是否启用文件信息缓存:caching()
- 判断是否是文件:isFile()
- 判断是否是文件夹:isDir()
- 判断是否是隐藏文件:isHidden()
- 判断文件是否可执行:isExecutable()
- 判断用户是否可以读数据:isReadable()
- 判断用户是否可写:isWritable()
- 判断是否是绝对路径:isAbsolute()
- 判断路径是否是相对路径:isRelative()
- 判断对象是否指向一个根目录:isRoot()
- 判断是否指向快捷方式/符号链接:isSymLink()
- 判断路径能否和本机api使用:isNativePath()
- 转换成绝对路径:makeAbsolute()
- 文件权限测试:permission(QFile::Permissions permissions)
- 判断对象是否指向绑定包:isBundle()
- 运算符重载---------------------------------------------------------
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").