QFileInfo提供有关文件在文件系统中的名称和位置(路径),其访问权限以及它是目录还是符号链接等的信息。文件的大小和上次修改/读取时间也可用。QFileInfo还可用于获取有关Qt资源的信息
QFileInfo可以指向具有相对或绝对文件路径的文件。绝对文件路径以目录分隔符“/”开头(或 Windows 上的驱动器规范)
构造函数:
常用函数:
absoluteDir() | 以QDir对象的形式返回文件的绝对路径 |
absoluteFilePath() | 返回文件的绝对路径,绝对路径名由完整路径和文件名组成 |
absolutePath() | 返回绝对路径,不包含文件名 |
baseName() | 返回不带路径的文件的基本名称 |
birthTime() | 返回创建时间(Qt 5.10) |
canoncalFilePath() | 返回包含文件名的规范路径,即没有符号链接或冗余 “.” 或 “..” 元素的绝对路径 |
canoncalPath() | 返回不包含文件名的规范路径,即没有符号链接或冗余 “.” 或 “..” 元素的绝对路径 |
complteBaseName() | 返回不带路径的文件的完整基名称(常用) |
complteSuffix() | 返回文件的后缀 |
dir() | 返回所在的目录 |
exist() | 判断文件是否存在 |
fileName() | 返回文件名称不包含路径 |
filePath() | 返回文件路径和文件名 |
isAbsolute() | 判断是否为绝对路径 |
isRelative() | 判断是否为相对路径 |
isExecutable() | 是否可执行 |
makeAbsolute() | 将文件路径转化为绝对路径 |
path() | 返回文件路径不包括文件名 |
reFlush() | 刷新 |
setFile() | 设置文件路径 |
size() | 文件大小 |
suffix() | 后缀 |
created() | 创建时间 |
lastModified() | 最后修改时间 |
lastRead() | 最后读取时间 |
查看文件信息:
QFileInfo file("D:/Qt_text/456.txt");
qDebug()<<"文件名称:"<<file.fileName();
qDebug()<<"文件路径:"<<file.filePath();
qDebug()<<"文件大小:"<<file.size();
qDebug()<<"文件后缀:"<<file.suffix();
qDebug()<<"文件路径(不含文件名):"<<file.path();
qDebug()<<"文件所在的目录:"<<file.dir();
qDebug()<<"文件的绝对路径:"<<file.absoluteFilePath();
qDebug()<<"文件绝对路径(不含文件名):"<<file.absolutePath();
qDebug()<<"文件基本名称:"<<file.baseName();
QDateTime created = file.created();
QDateTime lastM = file.lastModified();
QDateTime lasrR = file.lastRead();
qDebug()<<"文件的创建时间:"<<created.toString("yyyy:MM:dd:hh:mm:ss");
qDebug()<<"文件的最后修改时间:"<<lastM.toString("yyyy:MM:dd:hh:mm:ss");
qDebug()<<"文件的最后读取时间:"<<lasrR.toString("yyyy:MM:dd:hh:mm:ss");
qDebug()<<"文件是否可执行"<<file.isExecutable();
qDebug()<<"文件是否是绝对路径"<<file.isAbsolute();
QTemporaryFile(临时文件)
QTemporaryFile用于安全地创建唯一的临时文件。文件本身是通过调用open() 创建的。临时文件的名称保证是唯一的(即,保证您不会覆盖现有文件),并且该文件随后将在QTemporaryFile对象被销毁时被删除。这是一项重要的技术,可避免将数据存储在临时文件中的应用程序的数据损坏。文件名要么是自动生成的,要么是基于模板创建的,模板被传递给QTemporaryFile的构造函数。
构造函数:
主要函数:
open() | 打开文件,始终以QIODevice::ReadWirte模式打开 |
setAutoRemove() | 设置自动删除 |
setFileTemplate() | 设置临时文件的静态文件名(相当于给出一部分文件名) |
rename() | 重命名该临时文件 |
调用close() 后重新打开 QTemporaryFile 是安全的。只要 QTemporaryFile 对象本身没有被销毁,唯一的临时文件就会存在,并由 QTemporaryFile 在内部保持打开状态
创建一个临时文件:
QTemporaryFile tfile;
if(tfile.open())
{
tfile.write("123123123");
tfile.seek(0);//调整操作位置
qDebug()<<tfile.readAll();//读取一行
qDebug()<<tfile.size();//获取文件大小
qDebug()<<tfile.fileName();//获取临时文件名称
}
tfile.close();