Как QDir::makeAbsolute() может потерпеть неудачу?

В документации для QDir::makeAbsolute() говорится

Преобразует путь к каталогу в абсолютный путь. Если оно уже абсолютно, ничего не происходит. Возвращает true, если преобразование прошло успешно; в противном случае возвращает false.

Мне непонятно, как может произойти сбой при создании абсолютного пути из относительного пути.

Конечно, нет никакой гарантии, что каталог действительно будет существовать по этому абсолютному пути, но по большей части QDir API не заботится о том, существует ли каталог или нет, поэтому я был бы удивлен, если бы это было то, что он делал. здесь.


person Parker Coates    schedule 11.10.2018    source источник


Ответы (1)


QDir::makeAbsolute возвращает false (ошибка) если по какой-то причине файловый движок возвращает относительный путь при запросе абсолютного:

QString absolutePath = d->fileEngine->fileName(QAbstractFileEngine::AbsoluteName);
if (QDir::isRelativePath(absolutePath))
    return false;
person scopchanov    schedule 13.10.2018
comment
Вот как далеко я продвинулся в своих исследованиях. Мне все еще любопытно, как и почему это могло произойти. - person Parker Coates; 15.10.2018
comment
@ParkerCoates, почему вы тогда не упомянули об этом в своем вопросе? Это могло бы сэкономить мне время на копании исходного кода. - person scopchanov; 16.10.2018
comment
справедливо. Я подумал проверить исходный код только после того, как разместил вопрос, но я должен был вернуться и отредактировать его. - person Parker Coates; 16.10.2018