std::filesystem::directory_entry::replace_filename
void replace_filename( const std::filesystem::path& p ); | (1) | (начиная с C++17) |
void replace_filename( const std::filesystem::path& p, std::error_code& ec ); | (2) | (начиная с C++17) |
Изменяет имя файла записи каталога.
Фактически изменяет член path с помощью 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/cpp/filesystem/directory_entry/replace_filename