最終更新日時: 2024年06月11日 22時45分38秒 (JST)
Akira Takahashi が更新

履歴 編集

function
<filesystem>

# std::filesystem::path::replace_filename(C++17)

    path& replace_filename(const path& replacement);

## 概要

パスに含まれるファイル名を置き換える。

この関数は、ファイルシステム上のファイル名は変更しない。そのようなことをする場合は、`std::filesystem::rename()`関数を使用すること。

## 効果

以下と等価の効果を持つ：

    remove_filename();
    operator/=(replacement);

## 戻り値

`*this`

## 例

### POSIXベースシステムでの例

    #include <iostream>
    #include <filesystem>

    namespace fs = std::filesystem;

    int main()
    {
      fs::path ps[] = {
        "foo/bar.txt", // ファイル名を含むパス
        "foo/",        // ディレクトリパス
        "/"            // ルートパスのみ
      };

      for (fs::path& p : ps) {
        const fs::path before = p;

        p.replace_filename("a.md");
        std::cout << before << " : " << p << std::endl;
      }
    }

#### 出力

    "foo/bar.txt" : "foo/a.md"
    "foo/" : "foo/a.md"
    "/" : "/a.md"

## バージョン

### 言語

- C++17

### 処理系

- Clang:
- GCC: 8.1 ✅
- Visual C++: 2017 Update 7 ✅