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 ✅