Я пробовал следующий короткий пример, чтобы узнать об ошибке в большей программе, над которой я работаю. Похоже, QFile не поддерживает UNIX (или командный интерпретатор) обозначение для домашнего каталога:Почему QFile не читается из каталога «~»?
#include <QFile>
#include <QDebug>
int main()
{
QFile f("~/.vimrc");
if (f.open(QIODevice::ReadOnly))
{
qDebug() << f.readAll();
f.close();
}
else
{
qDebug() << f.error();
}
}
Как только я заменить «~» с моим путем реальных домашнего каталога, это работает. Есть ли простой способ обхода - некоторые настройки позволяют? Или мне нужно пойти «уродливым» способом и спросить QDir для домашнего каталога текущего пользователя и добавить его вручную к каждому пути?
Приложение: Понятно, что обычно оболочка выполняет расширение тильды, поэтому программы никогда этого не увидели. Тем не менее это настолько удобно в оболочках unix, что я надеялся, что реализация Qt для доступа к файлу будет включать это расширение.
Это может оказаться полезным для реализации 'оператор/(QDir, зЬй :: строка)', так что вы можете написать 'QDir :: HOMEPATH()/" vimrc"' – MSalters