Spec-Zone.ru › C++

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"

См. также

assign
присваивает содержимое
(публичная функция-член)
replace_filename
заменяет последнюю составляющую пути другим путём
(публичная функция-член 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API