名前空間
変種
操作

std::filesystem::path::replace_extension

提供: cppreference.com
< cpp‎ | filesystem‎ | path
 
 
 
 
path& replace_extension( const path& replacement = path() );
(1) (C++17以上)

拡張子を replacement で置き換えます。 replacement のデフォルト値が使用された場合は、拡張子を削除します。

まず、このパスが extension() を持っていれば、パス名の汎用形式視点からそれが削除されます。

それから、 replacement が空でなく、ドットで始まっていなければ、パス名の汎用形式視点にドット文字がひとつ追加されます。

それから、 operator+=(replacement) によって行われたかのように、 replacement が追加されます。

目次

[編集] 引数

replacement - 置き換える拡張子

[編集] 戻り値

*this

[編集] 例外

(なし)

[編集] ノート

ファイルシステムオブジェクトを表す意図はありませんが、ファイルシステムの文字エンコーディングに正しく対処するため、 replacement の型は std::filesystem::path になっています。

[編集]

#include <iostream>
#include <filesystem>
namespace fs = std::filesystem;
 
int main()
{
    fs::path p = "/foo/bar.jpeg";
    std::cout << "Was: " << p << '\n';
    p.replace_extension(".jpg");
    std::cout << "Now: " << p << '\n';
}

出力:

Was: "/foo/bar.jpeg"
Now: "/foo/bar.jpg"

[編集] 関連項目

パスのファイル拡張子部分を返します
(パブリックメンバ関数) [edit]
パスのファイル名部分を返します
(パブリックメンバ関数) [edit]
パスの語幹部分を返します
(パブリックメンバ関数) [edit]
対応するパス要素が空でないかどうか調べます
(パブリックメンバ関数)