Qt | 文件信息 QFileInfo

246 阅读2分钟

Offer 驾到,掘友接招!我正在参与2022春招打卡活动,点击查看活动详情

前言:

上一篇文章已经写了关于文件操作的一些方法,这一篇文章的内容是关于文件信息的。QFileInfo类提供了与系统无关的文件信息,包括文件的名称、在文件系统中的位置(文件路径)、文件的访问权限以及是否是一个目录或者符号链接等信息。QFileInfo还可以获取文件的大小和最近一次修改/读取的时间,还可以获取Qt资源的相关信息,只要是涉及获取指定文件相关信息的,都可以使用这个类。

文件信息的具体使用:

QFileInfo可以使用相对路径或者绝度路径来指向一个文件。

  • 使用isRelative() 函数可以判断一个QFileInfo对象使用的是相对路径还是绝对路径。
  • 使用makeAbsolute() 来将一个相对路径转换为绝对路径。
  • 可以在构造QFileInfo对象时指定指向的文件,也可以使用setFile() 函数来指定。
  • 使用exists() 函数来查看文件是否存在。

QFileInfo可以获取文件的一些基本信息:

  • 使用size()函数来获取文件大小。
  • 使用isFile()函数、isDir()函数和isSymLink()函数来判断文件的类型。
  • 使用symLinkTarget()函数获取符号链接指向的文件的名称。
  • 使用path()函数和fileName()函数分别获取文件的路径和文件名。
  • 使用baseName()函数获取文件名中的基本名称。
  • 使用suffix()函数获取文件名的后缀。
  • 使用completeSuffix()函数来获取复合后缀。
  • 使用created()函数、lastModified()函数和lastRead()函数获取文件的日期信息。

例:

QFile file(myfile.txt);
QFileInfo info(file);
qDebug() << QObject::tr("绝对路径:") << info.absoluteFilePath() << endl
         << QObject::tr("文件名:") << info.absoluteFilePath() << endl
         << QObject::tr("基本名称:") << info.absoluteFilePath() << endl
         << QObject::tr("后缀:") << info.absoluteFilePath() << endl
         << QObject::tr("创建时间:") << info.absoluteFilePath() << endl
         << QObject::tr("大小:") << info.absoluteFilePath() << endl

QFileInfo可以获取文件的权限信息:

  • 使用isReadable()函数、isWritable()函数和isExecutable()函数来获取文件的访问权限。
  • 使用owner()函数、ownerId()函数、group()函数和groupId()函数获取文件的所有权。
  • 使用permission()函数将文件的访问权限和所有权一次性读取出来。