std::experimental::filesystem::path
From cppreference.com
< cpp | experimental | fs
| ヘッダー <experimental/filesystem> で定義されています |
||
| class path; |
(filesystem TS) | |
path 型のオブジェクトは、ファイルシステムのパスを表します。パスの構文的な側面のみが処理されます。パス名は、存在しないパス、あるいは現在のファイルシステムや OS で存在が許可されていないパスを表すこともあります。
パス名は以下の構文を持ちます。
- root-name(optional): 複数のルートを持つファイルシステム (例: "C:" や "//myserver") におけるルートを識別します。POSIX ファイルシステムは単一のルートを持ちます。
- root-directory(optional): ディレクトリ区切り文字。存在する場合、このパスを *絶対パス* としてマークします。これが欠落している場合 (そして、ルート名以外の最初の要素がファイル名である場合)、パスは *相対パス* となり、ファイル名を解決するために別のパスを開始位置として必要とします。
- ゼロ個以上の以下の要素:
- file-name: ディレクトリ区切り文字でも推奨ディレクトリ区切り文字でもない一連の文字 (OS やファイルシステムによって追加の制限が課される場合があります)。この名前は、ファイル、ハードリンク、シンボリックリンク、またはディレクトリを識別できます。2 つの特別な file-name が認識されます。
- dot: 単一のドット文字 . からなるファイル名は、現在のディレクトリを参照するディレクトリ名です。
- dot-dot: 2 つのドット文字 .. からなるファイル名は、親ディレクトリを参照するディレクトリ名です。
- directory-separators: フォワードスラッシュ文字 / または
path::preferred_separatorとして提供される代替文字。この文字が繰り返された場合、単一のディレクトリ区切り文字として扱われます: /usr///////lib は /usr/lib と同じです。
begin() および end() 関数によって返されるイテレータを使用して、パスを要素ごとにたどることができます。これらは、ルート名、ルートディレクトリ、および後続のファイル名要素を反復処理します (ルートディレクトリを識別するものを除き、ディレクトリ区切り文字はスキップされます)。パスの最後の要素がディレクトリ区切り文字の場合、最後のイテレータはファイル名 dot を逆参照します。
path の非 const メンバ関数を呼び出すと、そのオブジェクトの要素を参照するすべてのイテレータが無効になります。
OS が上記で説明したポータブルな *汎用* 構文とは異なる *ネイティブ* 構文を使用する場合、すべてのライブラリ関数は両方の形式のパス名を受け入れます。
パスは std::basic_string との間で暗黙的に変換可能であり、これにより、他のファイル API (例: std::ifstream::open の引数) で使用できます。
目次 |
[編集] メンバ型
| 型 | 定義 |
value_type
|
ファイルシステムのネイティブエンコーディングで使用される文字型: POSIX では char、Windows では wchar_t |
string_type
|
std::basic_string<value_type> |
const_iterator
|
value_type が path である定数 LegacyBidirectionalIterator |
iterator
|
const_iterator へのエイリアス |
[編集] メンバ定数
| constexpr value_type preferred_separator [static] |
ポータブルな / に加えて使用できる代替ディレクトリセパレータ。Windows ではバックスラッシュ文字 \ です。POSIX では、ポータブルセパレータと同じフォワードスラッシュ / です。 (公開静的メンバ定数) |
[編集] メンバ関数
path を構築します。(public member function) | |
path オブジェクトを破棄します。(public member function) | |
| 別のパスを代入します。 (public member function) | |
| 内容を代入する (public member function) | |
連結 | |
| パスに要素を追加します。 (public member function) | |
| ディレクトリセパレータを導入せずに2つのパスを連結します。 (public member function) | |
変更 | |
| 内容を削除します。 (public member function) | |
| ディレクトリ区切り文字を推奨ディレクトリ区切り文字に変換します。 (public member function) | |
| ファイル名のパスコンポーネントを削除します。 (public member function) | |
| 最後のパスコンポーネントを別のパスに置き換えます。 (public member function) | |
| 拡張子を置き換えます。 (public member function) | |
| 2つのパスをスワップします。 (public member function) | |
フォーマットオブザーバー | |
| パスのネイティブバージョンを返します。 (public member function) | |
| パスをネイティブパス名形式から文字列に変換して返します。 (public member function) | |
| パスをジェネリックパス名形式から文字列に変換して返します。 (public member function) | |
Compare | |
| 2つのパスの字列表現を辞書順に比較します (public member function) | |
分解 | |
| パスのルート名を返します(存在する場合)。 (public member function) | |
| パスのルートディレクトリを返します(存在する場合)。 (public member function) | |
| パスのルートパスを返します(存在する場合)。 (public member function) | |
| ルートパスに対する相対パスを返します。 (public member function) | |
| 親パスのパスを返します。 (public member function) | |
| ファイル名のパスコンポーネントを返します。 (public member function) | |
| ステムパスコンポーネントを返します。 (public member function) | |
| ファイルの拡張子パスコンポーネントを返します。 (public member function) | |
問い合わせ | |
| パスが空かどうかをチェックする (public member function) | |
| 対応するパス要素が空でないかどうかをチェックします。 (public member function) | |
| root_path() がファイルシステムの位置を一意に識別するかどうかをチェックします。 (public member function) | |
イテレータ | |
| パスへの要素のシーケンスとしてのイテレータアクセス。 (public member function) | |
[編集] 非メンバ関数
| 2つのパスをスワップします。 (function) | |
| 2つのパスを辞書順に比較します (function) | |
| ディレクトリセパレータで2つのパスを連結します。 (function) | |
| パスに対するストリーム入出力を行います。 (function) | |
| UTF-8エンコードされたソースから`path`を作成 (function) |