только адрес вида "C:/", несмотря на то, что приложение запущено в одной из папок этого диска?
а запуск не через консоль случайно?
Ну, приложуха консольная, запуск с вижака и из папки вручную дает одинаковый результат.
У меня похожий баг был, но я не поборол это в итоге
Пичаль. Придется винапи юзать.
...Которое юзает current_path()
Проверил в VS2019 - все отлично
'''DWORD GetCurrentDirectory( DWORD nBufferLength, LPTSTR lpBuffer );''' юзает current_path()?
Я в замешательстве
Как проверял?
"WinAPI, которое юзает current_path". Памятуя, что API - интерфейс - мужского рода, скажу, что current_path() на винде, вероятнее всего, юзает его и в частности GetCurrentDirectory()
Дебаггером смотрел что в переменной std:: filesystem::path лежит после вызова current_path()
Нюансы есть. Если ты, например, стартанёшь службу Windows, вызванный в ней current_path() всегда будет возвращать C:\Windows\System32
И далее по коду вызов std:: filesystem::create_directories, который создает мне папки всегда в корне диска, а не возле exeшника
А у тебя все на одном диске?
не совсем понял вопрос
Не всегда, а только если не поменять. Ну и это правильно, это и есть настоящий cwd у винсервиса, что не так-то?
Ну у тебя всё на диске С? Студия, экзешник, запуск консоли?
Да, но я и пробовал запускать с диска D, поведение аналогично
Тоже в корень С путь возвращает?
Нет, в корень D:
Ну-ка кинь код
Обсуждают сегодня