std::filesystem::directory_entry::replace_filename
void replace_filename( const std::filesystem::path& p ); |
(1) | (since C++17) |
void replace_filename( const std::filesystem::path& p, std::error_code& ec ); |
(2) | (since C++17) |
Изменяет имя файла для записи каталога.
Фактически изменяет член пути, добавляя path.replace_filename(p) и вызывает refresh для обновления кэшированных атрибутов. Если произошла ошибка, значения кэшированных атрибутов не определены.
Эта функция не вносит изменений в файловую систему.
Параметры
| p | - | путь для добавления к родительскому пути текущего сохранённого пути |
| ec | - | параметр для отчёта об ошибках в перегрузке без исключений |
Возвращаемое значение
(нет)
Исключения
Любая перегрузка, не помеченная noexcept, может выбросить std::bad_alloc, если выделение памяти завершилось неудачей.
1) Выбрасывает
std::filesystem::filesystem_error при ошибках в базовых API операционной системы, созданных с p в качестве первого аргумента пути и кодом ошибки ОС в качестве аргумента ошибки.
2) Устанавливает параметр
std::error_code& в код ошибки API операционной системы, если вызов API операционной системы завершается ошибкой, и выполняет ec.clear() в случае отсутствия ошибок.Пример
#include <filesystem>
#include <iostream>
int main()
{
namespace fs = std::filesystem;
{
fs::directory_entry entry{"alpha"};
std::cout << entry << '\n';
entry.replace_filename("omega");
std::cout << entry << '\n';
}
{
fs::directory_entry entry{"/alpha/"};
std::cout << entry << '\n';
entry.replace_filename("omega");
std::cout << entry << '\n';
}
}Вывод:
"alpha" "omega" "/alpha/" "/alpha/omega"
См. также
| присваивает содержимое (публичная функция-член) |
|
| заменяет последнюю составляющую пути другим путём (публичная функция-член std::filesystem::path) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/filesystem/directory_entry/replace_filename