Метод remove_filename
Метод remove_filename класса path удаляет имя файла из объекта пути, оставляя только родительскую директорию. Метод изменяет текущий объект path и возвращает ссылку на него. Параметров метод не принимает. Если путь уже содержит только директорию, метод удалит последний компонент, который считается именем файла.
Синтаксис
path& remove_filename();
Пример
Давайте создадим объект path с полным путём к файлу и удалим из него имя файла:
#include <iostream>
#include <filesystem>
using namespace std;
namespace fs = std::filesystem;
int main()
{
fs::path p = "/var/www/index.html";
p.remove_filename();
cout << p << endl;
return 0;
}
Результат выполнения кода:
"/var/www/"
Пример
Давайте применим метод remove_filename к пути, который содержит только директорию:
#include <iostream>
#include <filesystem>
using namespace std;
namespace fs = std::filesystem;
int main()
{
fs::path p = "/var/www";
p.remove_filename();
cout << p << endl;
return 0;
}
Результат выполнения кода:
"/var/"
Пример
Давайте покажем, что метод возвращает ссылку на изменённый объект path, и выведем результат цепочкой:
#include <iostream>
#include <filesystem>
using namespace std;
namespace fs = std::filesystem;
int main()
{
fs::path p = "/home/user/abcde.txt";
cout << p.remove_filename() << endl;
return 0;
}
Результат выполнения кода:
"/home/user/"
Смотрите также
-
метод
filename,
который возвращает имя файла из пути -
метод
replace_filename,
который заменяет имя файла в пути -
метод
parent_path,
который возвращает родительскую директорию -
метод
stem,
который возвращает имя файла без расширения