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