Qt 之 获取文件信息

Qt中获取文件信息

  1. QDir
  2. QFile
  3. QFileInfo
  4. 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 )

猜你喜欢

转载自blog.csdn.net/QIJINGBO123/article/details/87879757
今日推荐