QFileInfo

简介

QFileInfo类为我们提供了系统无关的文件信息,包括文件的名字和在文件系统中位置,文件的访问权限,是否是目录或符合链接等等。并且,通过这个类,可以修改文件的大小和最后修改、读取时间。同时,QFileInfo类也可以用来取到Qt 资源的相关信息。

QFileInfo可以表示绝对路径或相对路径的文件。其中,绝对路径就是以"/"开始的路径(或者在Windows系统上就是以某个盘符开始的路径)。相对路径就是相对于当前工作目录的一个文件或目录。我们在开发中可以使用该类的成员函数isRelative() 来判断一个QFileInfo表示的是一个相对路径还是一个绝对路径,也可以使用makeAbsolute()将一个相对路径转换为一个绝对路径。

用法

QFileInfo::QFileInfo() QFileInfo::QFileInfo(const QString & file) QFileInfo::QFileInfo(const QFile & file) QFileInfo::QFileInfo(const QDir & dir, const QString & file) QFileInfo::QFileInfo(const QFileInfo & fileinfo)
构造函数,创建QFlieInfo对象。

QFileInfo info("1/myTest.c.tar.gz");

bool QFileInfo::exists()
判断指定文件是否存在。

QString filename ="D:/OpenGIS/osg+Obliquephoto/1JC/11JC.s3c";
QFileInfo fileInfo(filename);
qDebug() << fileInfo.exists(); //true 

bool QFileInfo::isDir ()
判断是否文件路径。

QFileInfo fi("C:/123");
fi.isDir(); //true

QString QFileInfo::fileName()const
返回文件名以及路径,可能是相对路径也可能是绝对路径,看你的设置。

QFileInfo fi("D:/1.txt");
QString name = fi.fileName(); //"D:/1.txt"

QString QFileInfo::canonicalFilePath()const
返回包含文件名的标准路径,即没有符号链接或冗余的“.”或“…”元素的绝对路径。
如果文件不存在,canonicalFilePath()将返回一个空字符串。

QFileInfo fileinfo("D:/1.txt");
QString info = fileinfo.canonicalPath(); //返回"D:/1.txt"

QString QFileInfo::baseName()const
只获取名称不包含任何后缀。

QFileInfo fileinfo("D:/1.txt");
QString base = fileinfo.baseName(); //返回"1"

QDir QFileInfo::dir()const
返回文件相对工作目录的路径作为QDir对象的参数.

QFileInfo fileinfo("D:/1.txt");
QDir dir = fileinfo.dir(); 

QDateTime QFileInfo::lastModified()const
返回文件最后一次修改的日期和时间.

QFileInfo fileinfo("D:/aa/1.txt");
QDateTime fileinfoLastModified = fileinfo.lastModified(); //"周五 3月 12 17:53:22 2021"

QDir QFileInfo::absoluteDir()const
以QDir对象的形式返回文件的绝对路径。

QFileInfo fileinfo("D:/aa/1.txt");
QDir dir = fileinfo.absoluteDir();  //将"D:/aa"传入到QDir构造函数

QString QFileInfo::path()const
1.返回文件的路径。这并不包括文件名。
2.注意,如果给这个QFileInfo对象一个以斜杠结尾的路径,那么文件的名称将被认为是空的,这个函数将返回整个路径。

QFileInfo fileinfo("D:/aa/1.txt");
QString fileinfoPath = fileinfo.path(); //返回"D:/aa"

QFileInfo fileinfo("D:/aa/1.txt/");
QString fileinfoPath = fileinfo.path(); //返回"D:/aa/1.txt"

qint64 QFileInfo::size()const
以字节为单位返回文件大小。如果文件不存在或无法获取,则返回0。

QFileInfo fileinfo("D:/aa/1.txt"); //内容为1111
fileinfo.size(); //返回为4

QString QFileInfo::absolutePath()const
1.返回包含文件名的绝对路径。
2.绝对路径名由完整路径和文件名组成。在Unix上,它总是以根目录’/'开头。在Windows中,它总是以’D:/‘开头,其中D是一个驱动器字母,但没有映射到驱动器字母的网络共享除外,在这种情况下,路径将以’//sharename/'开头。QFileInfo将大写驱动器字母。

QFileInfo fileinfo("D:/aa/1.txt");
QString fi = fileinfo.absolutePath(); //返回"D:/aa/1.txt"

bool QFileInfo::isFile()const
1.如果该对象指向文件或指向指向文件的符号链接,则返回true。
2.如果对象指向的不是文件,例如目录,则返回false。

QFileInfo fileinfo("D:/aa/1.txt");
fileinfo.isFile(); //true

QFileInfo fileinfo("D:/aa");
fileinfo.isFile(); //false

bool QFileInfo::isSymLink()const
1.如果该对象指向一个符号链接(或指向Windows上的快捷方式),则返回true,否则返回false。
2.在Unix(包括Mac OS X)上,打开一个符号链接可以有效地打开该链接的目标。在Windows上,它会打开.lnk文件本身。

QFileInfo info(fileName);
 if (info.isSymLink())
     fileName = info.symLinkTarget();
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阳光开朗男孩

你的鼓励是我最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值