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