Czym to kompilujesz?
Jeżeli przy pomocy gcc lub clanga (choć nie wiem czy clang ma pełne wsparcie, na pewno na dzień dzisiejszy msvc odpada, choć i pod vs można podpiąć protezę w postaci minGW lub clanga) to warto zainteresować się nową libką wchodzącą w skład nowego standardu:
http://en.cppreference.com/w/cpp/filesystemNawet nie pamiętam czy gcc i clang korzystają z tej samej implementacji biblioteki standardowej:
https://libcxx.llvm.org/czy może z tego:
https://www.gnu.org/software/libc/Zresztą....
Myślę, że w std::filesystem znajdziesz odpowiednie ficzery, które zrobią za Ciebie robotę.
Przejrzyj sobie dokumentację klasy path:
http://en.cppreference.com/w/cpp/filesystem/pathMyślę, że pomoże Ci w rozwiązaniu tego problemu.
Jeżeli implementacja biblioteki standardowej z której korzysta Twój kompilator nie wspiera standardu c++17, to nie ma co się pierdolić i zawsze możesz podpiąć pod projekt odpowiednik third-party z boosta:
http://www.boost.org/doc/libs/1_64_0/libs/filesystem/doc/index.htmChoć rozwiązania standardowe są zazwyczaj szybsze od tych z boosta. Jest jeszcze sprawa, że libka została pewnie wykastrowana zanim przenieśli ją do standardu (nie wiem, nie porównywałem, ale np std::future jest poobcinane w porównaniu z boost::future).
W każdym bądź razie nie należy mieszać rozwiązań standardowych z tymi z boosta.
tak btw
Nie polecam tych filmików od Zelenta. Na stronach cppreference i cplusplus masz wiedzę opisaną w przystępny i co najważniejsze wyczerpujący sposób. A jeżeli i to jest dla Ciebie za mało to można zerknąć sobie do oficjalnych draftów. To oczywiście moja opinia, nie każdy musi się z tym zgadzać.