最終更新日時(UTC):
が更新

履歴 編集

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

処理系