QT 文件信息 QFileInfo
文件信息 QFileInfo
QFileInfo 类提供了与系统无关的文件信息,包括文件的名称、在文件系统中的位置(路径)、文件的访问权限以及是否是一个目录或者符号链接等。
QFileInfo 也可以获得文件的大小和最近一次修改/读取的时间,还可以获得Qt资源的相关信息。
QFileInfo 可以使用相对路径或者绝对路径来指向一个文件。
QString QFileInfo::absoluteFilePath() const |
返回包含文件名的绝对路径。 |
QString QFileInfo::path() const |
返回文件的路径。不包括文件名。 |
QString QFileInfo::fileName() const |
返回文件的名称, 不包括路径 |
QString QFileInfo::baseName() const |
返回没有路径的文件的基名称。 |
QString QFileInfo::suffix() const |
返回文件的后缀 |
qint64 QFileInfo::size() const |
返回文件大小 (以字节为单位)。如果文件不存在或无法提取, 则返回0。 |
如果文件路径名称是相对的, 则返回 true, 否则返回 false | |
(将相对路径转换为绝对路径)如果文件的路径尚未在绝对路径中, 则将其转换为绝对路径。返回 true 以指示路径已转换;否则返回 false 以指示路径已为绝对路径。 | |
QString QFileInfo::symLinkTarget() const |
返回符号链接 (或 Windows 上的快捷方式) 指向的文件或目录的绝对路径, 如果对象不是符号链接, 则返回空字符串。 |
uint QFileInfo::ownerId() const |
返回文件所有者的 id。 在 Windows 和文件没有所有者的系统上, 此函数返回 ((uint)-2)。 |
文件的日期 | |
QDateTime QFileInfo::created() const | 返回创建文件的日期和时间。 在大多数 Unix 系统上, 此函数返回上次状态更改的时间。 |
QDateTime QFileInfo::lastModified() const |
返回上次修改文件的日期和时间。 |
QDateTime QFileInfo::lastRead() const |
返回上次读取 (访问) 文件的日期和时间。 |
文件的所有权 | |
QString QFileInfo::owner() const |
返回文件的所有者。在文件没有所有者的系统上, 或者如果发生错误, 则返回空字符串。 |
QString QFileInfo::group() const |
返回文件的组。在 Windows 上, 在文件没有组的系统上, 或者在发生错误时, 将返回空字符串。 此函数在 Unix 下可能非常耗时 (按毫秒顺序)。 |
uint QFileInfo::groupId() const |
返回文件所属的组的 id。 在 Windows 和文件没有组的系统上, 此函数始终返回 (uint)-2。 |
访问权限 | |
如果用户可以读取该文件, 则返回 true。否则返回 false。 注意: 如果尚未启用 NTFS 权限检查, Windows 上的结果将仅反映该文件是否存在。 |
|
如果用户可以写入该文件, 则返回 true。否则返回 false。 注意: 如果尚未启用 NTFS 权限检查, Windows 上的结果将仅反映文件是否标记为 "只读"。 |
|
如果文件是可执行的, 则返回 true。否则返回 false。 | |
bool QFileInfo::permission(QFile::Permissions permissions) const |
文件权限测试。权限参数可以是 QFile 类型的多个标志::P ermissions OR-ed 一起检查权限组合。 在文件没有权限的系统上, 此函数始终返回 true。 |
例子:
//获取文件信息
QFile file("myfile.txt");
QFileInfo info(file);
qDebug()<< QObject::tr("绝对路径:")<<info.absoluteFilePath()<<endl
<< QObject::tr("文件名:")<<info.fileName()
<< QObject::tr("基本名称:")<<info.baseName()
<< QObject::tr("后缀:")<<info.suffix()
<< QObject::tr("创建时间:")<<info.created()
<< QObject::tr("大小:")<<info.size();