【发布时间】:2014-07-18 19:20:53
【问题描述】:
我正在尝试检查提供的路径是否存在以及它是否是一个文件。
所以我写了这段代码:
#include <QFile>
#include <QFileInfo>
bool Tool::checkPath(const QString &path){
QFileInfo fileInfo(QFile(path));
return (fileInfo.exists() && fileInfo.isFile());
}
我得到以下编译器错误:
Error: request for member 'exists' in 'fileInfo', which is of non-class type 'QFileInfo(QFile)'
Error: request for member 'isFile' in 'fileInfo', which is of non-class type 'QFileInfo(QFile)'
为什么?我一遍又一遍地阅读文档,但我无法理解。 BTW Qt Creator 向我建议这些方法并完成它们。但是编译器不喜欢它。
【问题讨论】:
-
为什么需要构造文件?只需使用 QFileInfo::QFileInfo(const QString & file) 构造函数。
-
我刚刚错过了构造函数,但我看不出它应该造成任何伤害的原因。但它实际上在直接提供路径时有效。知道为什么吗?非常感谢您的解释。
-
我认为编译器会处理 QFileInfo fileInfo(QFile(path));作为函数声明,而不是作为对象初始化。