Qt: разверните ~ в домашнюю директорию

Есть ли в Qt какая-либо независимая от платформы функциональность для приема таких путей, как «~/myfile»?

Я знаю о wordexp, но было бы неплохо использовать независимую от платформы оболочку.

Изменить:

Спасибо всем за ответы. "~/myfile" был просто примером. То, что я ищу, - это функциональность для обработки путей к файлам, которые вы могли бы писать в командной строке. Таким образом, в Linux он должен принимать «~/myfile», «~otheruser/hisfile», «$VAR/file» и т. д. В Windows он должен принимать «%HOMEDIR%\myfile» и т. д.


person Rasmus Faber    schedule 02.12.2009    source источник


Ответы (2)


Возможно, вы могли бы просто заменить тильду результатом QDir::homePath()? Ссылка здесь.

person ChristopheD    schedule 02.12.2009
comment
Но только если ~ находится в начале. - person Georg Schölly; 02.12.2009
comment
Вы должны убедиться, что это делается только тогда, когда ~ находится в начале пути, а за ним следует разделитель пути. Также существует проблема с путями, такими как ~foo/myfile, которые должны расширяться до myfile в доме foo. Не уверен, насколько легко это будет обрабатываться вне среды * nix, где запросить домашний каталог другого пользователя тривиально. - person jamessan; 02.12.2009

Я думаю, что absolutePath (http://doc.qt.io/qt-5/qdir.html#absolutePath) — способ сделать это.

person e8johan    schedule 03.12.2009
comment
В документации нет упоминания о расширении тильды. - person Thomas; 12.10.2017