Я пишу тестовые примеры прямо сейчас, и я создал несколько тестовых файлов, которые я пытаюсь прочитать. Абсолютный путь:Как открыть файл с относительным путем в C++?
/home/user/code/Project/source/Project/components/Project/test/file.dat
, но, по очевидным причинам, тестирование с абсолютным путем является плохим. Поэтому я пытаюсь преобразовать абсолютный путь в относительный, и я не знаю, почему он не работает. Я создал файл с относительным путем
findme.dat
, и я нашел его в
/home/user/code/Project/build/source/Project/components/Project/test/findme.dat
поэтому я создал относительный путь
/../../../../../../source/Project/components/Project/test/file.dat
но файл не открыт и не связан с Объект is
, std::ifstream is (path);
, а функция is.is_open()
функция возвращается.
Вы можете мне помочь?
Каков текущий рабочий каталог вашей программы? Путь, который вы указываете, должен быть относительно CWD. Кроме того, поскольку вы запускаете путь с помощью '/', это означает, что вы начинаете * в корневом каталоге *, и поскольку для корня нет родительского каталога, это означает, что '/ ..' совпадает с '/', что приводит к вашему пути равным '/ source/Project/components/Project/test/file.dat' –
Все зависит от текущего рабочего каталога. т.е. где размещена ваша программа. –
Ваш «относительный» путь не является относительным. Он должен начинаться с точки вместо косой черты. например, /../../../../../../source/Project/components/Project/test/file.dat –