конкретный пример: < /p>
Код: Выделить всё
#include
#include
void test(std::filesystem::path p) {
std::cout "../../../../a/b/c"
"a" -> ""
"a/b" -> ""
"a/b/c" -> ""
"x/y/z" -> ""
"a/x/y" -> ""
< /code>
Хорошо, абсолютные пути становятся относительными, достаточно справедливыми, но относительные пути являются пустыми строками. Почему? Я думаю, что уже относительные пути останутся неизменными. (Обратите внимание, что нет исключений!) Если я создаю файл $ touch a
$ ./paths
"/a/b/c" -> "../../../../a/b/c"
"a" -> "a"
"a/b" -> "a/b"
"a/b/c" -> "a/b/c"
"x/y/z" -> ""
"a/x/y" -> "a/x/y"
< /code>
да? Хорошо, «А» существует теперь, так что это действительный относительный путь. И «A/B» я мог бы понять, если «А» был хотя бы каталогом, но это не так. Но почему «A/B/C» и «A/X/Y» действительны, когда «X/Y/Z» не является?
Помочь мне понять логику!>
Подробнее здесь: https://stackoverflow.com/questions/796 ... strings-fo
Мобильная версия