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

履歴 編集

function
<filesystem>

std::filesystem::path::make_preferred(C++17)

path& make_preferred();

概要

ディレクトリの区切り文字を推奨する形式に変換する。

この関数は、環境非依存のディレクトリ区切り文字を、その環境 (OS) が推奨する形式に変換する。環境非依存のディレクトリ区切り文字として "/" (スラッシュ) があるが、例としてWindows環境では "\\" (バックスラッシュ) が推奨されるディレクトリ区切り文字となっている。

環境が推奨するディレクトリ区切り文字は、このクラスのメンバ定数preferred_separatorで取得できる。

戻り値

*this

POSIXベースシステムでの例

#include <iostream>
#include <filesystem>

namespace fs = std::filesystem;

int main()
{
  // POSIX環境では推奨のディレクトリ区切り文字が "/" (スラッシュ)。
  // 環境非依存のディレクトリ区切り文字 "/" から変更がないため、この関数はなにもしない
  fs::path p = "foo/bar";
  p.make_preferred();

  std::cout << p << std::endl;
}

出力

"foo/bar"

Windowsでの例

#include <iostream>
#include <filesystem>

namespace fs = std::filesystem;

int main()
{
  // Windows環境では推奨のディレクトリ区切り文字が "\\" (バックスラッシュ)。
  // 環境非依存のディレクトリ区切り文字 "/" が "\\" に変換される
  fs::path p = "foo/bar";
  p.make_preferred();

  std::cout << p << std::endl;
}

出力

"foo\bar"

Windowsでの例は、Visual C++が正式にファイルシステムライブラリをサポートしていないことから、未検証のサンプルコード・出力となっている。

バージョン

言語

  • C++17

処理系