我尝试了下面这个简短的例子,以找出我正在处理的一个大程序中的错误。看起来QFile不支持unix(或shell的)家目录符号:
#include <QFile>
#include <QDebug>
int main()
{
QFile f("~/.vimrc");
if (f.open(QIODevice::ReadOnly))
{
qDebug() << f.readAll();
f.close();
}
else
{
qDebug() << f.error();
}
}
一旦我用真实的主目录路径替换“〜”,它就可以工作了。是否有简单的解决方法 - 一些设置来启用?还是我必须采取“丑陋”的方式并要求QDir手动添加当前用户的主目录到每个路径中?
补充说明:通常情况下,shell执行波浪线扩展,因此程序永远不会看到它。尽管如此,在unix shell中非常方便,我希望Qt文件访问的实现包括该扩展。
operator/(QDir, std::string)
可能是值得的,这样你就可以写成QDir::homePath()/".vimrc"
。 - MSalters