【发布时间】:2011-02-18 11:29:13
【问题描述】:
我尝试了以下简短示例来找出我正在处理的更大程序中的错误。看起来 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"
标签: c++ qt qt4 tilde-expansion qfile