`std :: filesystem :: weakly_canonical` со специальными частями пути завершается неудачно - PullRequest
0 голосов
/ 25 февраля 2020

У меня есть путь, состоящий из некоторых частей, которые в конечном итоге содержат специальные части пути /../../, а справа - некоторые гипотетические части. Слева от особых частей путь может быть оценен как реальный путь. В соответствии с ссылкой гипотетические части должны быть в порядке, а не проблема сама по себе.

При передаче на std::filesystem::weakly_canonical происходит сбой из-за неверного пути (а не просто несуществующего файла / папки, который должен быть в порядке). Я думаю, это из-за упомянутых особых деталей ...

Есть ли что-то, что я могу позвонить, прежде чем перейти к weakly_canonical, чтобы обработать специальные детали?

На самом деле я хочу вызовите std::filesystem::make_relative по другому пути, который, в свою очередь, вызовет weakly_canonical на входе.

1 Ответ

0 голосов
/ 26 февраля 2020

Оказалось, это связано с тем, что путь был гипотетическим (что может быть ошибкой (?)). Я обнаружил, что решение было прямо передо мной, а именно, что std::filesystem::path имеет функцию с именем lexically_relative, которая, как следует из названия, не использует внешние вызовы.

...