Qt中获取文件信息
- QDir
- QFile
- QFileInfo
- QFileDialog
QFileInfo类
QFileInfo类为我们提供了与系统无关的文件信息,包含文件的name和在文件系统中的位置,文件的访问权限。是否是目录或符合连接等。并且,通过该类,可以修改文件的大小和最后修改、读取的时间。同时,QFileInfo类也可以用来获取Qt资源的相关信息。
QFileInfo既可以表示绝对路径,也可以表示相对路径的文件。绝对路径是以“/”开始的路径,而相对路径则是相对于当前目录的一个文件或目录。Qt中给我们提供了isRelative的方法用于判断是否为相对路径或绝对路径,也可以使用makeAbsolute()方法将相对路径转换成绝对路径。
QFileInfo类可以使用exists()函数判断一个文件是否存在,使用size(0函数获取文件大小。isFile()、isDir()、isSymLink()函数用于判断文件的类型。
代码实现:
#include <QCoreApplication>
#include <QFileInfo>
#include <QDebug>
#include <QDir>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QFileInfo info("test/test.txt");
if(!info.exists())
{
qDebug() << "error";
return 0;
}
//返回一个代码文件绝对路径的QDir对象。
qDebug() << "absoluteDir: " << info.absoluteDir();
//返回一个包含文件名的绝对路径
qDebug() << "absoluteFilePath: " << info.absoluteFilePath();
//返回文件的绝对路径,不包括文件名。
qDebug() << "absolutePath: " << info.absolutePath();
//只返回文件名,不包括路径。例如:
qDebug() << "fileName: " << info.fileName();
//返回文件的名字,包括路径(可能是绝对路径,也可能是相对路径)
qDebug() << "filePath: " << info.filePath();
//返回文件的路径,不包括文件名。
qDebug() << "path: " << info.path();
return a.exec();
}
QFileInfo类与其它类之间的区别:
QDir类是针对文件目录的,也就是文件夹;
QFile用于文件内容的读取,主要是文本文件和二进制文件;
QFileInfo是针对具体的一个文件以及保存文件的信息;
QFileDialog用于淡出打开或保存对话框,然后返回选择的文件或文件夹。提供的静态方法:
QString getExistingDirectory ( QWidget * parent = 0, const QString & caption = QString(), const QString & dir = QString(), Options options = ShowDirsOnly )
QString getOpenFileName ( QWidget * parent = 0, const QString & caption = QString(), const QString & dir = QString(), const QString & filter = QString(), QString *selectedFilter = 0, Options options = 0 )
QStringList getOpenFileNames ( QWidget * parent = 0, const QString & caption = QString(), const QString & dir = QString(), const QString & filter = QString(), QString *selectedFilter = 0, Options options = 0 )
QString getSaveFileName ( QWidget * parent = 0, const QString & caption = QString(), const QString & dir = QString(), const QString & filter = QString(), QString * selectedFilter= 0, Options options = 0 )