std::filesystem::path jak dodać ukośnik na koncu ?

0

Jak "p" ma wartosc /tmp/koza/owca/swinia jak dopisać ukośnik na końcu aby uzyskać "/tmp/koza/owca/swinia/" ?
Dodanie separatora "/" "wyzerowało" p i to rozumiem, jedyne co mi przychodzi to dodanie "./" ale wtedy jest "brzydko" /tmp/koza/owca/swinia/./

godbolt

#include <iostream>
#include <filesystem>
namespace fs = std::filesystem;
int main()
{
    std::cout << "Current path is " << fs::current_path() << '\n'; // (1)
    fs::current_path(fs::temp_directory_path()); // (3)
    std::cout << "Current path is " << fs::current_path() << '\n';
    auto p = fs::current_path() ;
    p /= "koza";
    std::cout << p.string() <<"\n";
    p /= "owca/";
    std::cout << p.string() <<"\n";
    p /= "swinia";
    std::cout << p.string() <<"\n";
    p /= "/";
    std::cout << p.string() <<"\n";
}

wynik:

Current path is "/app"
Current path is "/tmp"
/tmp/koza
/tmp/koza/owca/
/tmp/koza/owca/swinia
/
4

Ale po co Ci ten dodatkowy ukośnik na końcu?

0

dziękuje !
zafiksowałem się na "/=" ;)

I rzeczywiście po zastanowieniu to ten ukośnik na koncu nie jest mi potrzebny

5
Adamek Adam napisał(a):

dziękuje !
zafiksowałem się na "/=" ;)

I rzeczywiście po zastanowieniu to ten ukośnik na koncu nie jest mi potrzebny

Też się da, tylko trzeba zrozumieć, że "/abs/abd/" to ścieżka do pliku o pustej nazwie.
https://godbolt.org/z/MhTfWfdrs

p /= "";

Program ściągawka.

1 użytkowników online, w tym zalogowanych: 0, gości: 1