std::experimental::filesystem::path
來自 cppreference.com
< cpp | experimental | fs
定義於標頭檔案 <experimental/filesystem> |
||
class path; |
(檔案系統 TS) | |
path
型別的物件表示檔案系統上的路徑。只處理路徑的語法方面:路徑名可能表示一個不存在的路徑,甚至是一個在當前檔案系統或作業系統上不允許存在的路徑。
路徑名有以下語法
- 根名(root-name)(可選):標識具有多個根的檔案系統上的根(例如 "C:" 或 "//myserver")。POSIX 檔案系統只有一個根。
- 根目錄(root-directory)(可選):一個目錄分隔符,如果存在,則將此路徑標記為絕對路徑。如果它不存在(並且除了根名之外的第一個元素是檔名),則該路徑是相對路徑,需要另一個路徑作為起始位置來解析為檔名。
- 零個或多個以下內容
- 檔名(file-name):不是目錄分隔符或首選目錄分隔符的字元序列(作業系統或檔案系統可能會施加額外的限制)。此名稱可以標識檔案、硬連結、符號連結或目錄。識別兩個特殊的檔名
- 點(dot):由單個點字元 . 組成的檔名,是一個指向當前目錄的目錄名。
- 點-點(dot-dot):由兩個點字元 .. 組成的檔名,是一個指向父目錄的目錄名。
- 目錄分隔符(directory-separator):正斜槓字元 / 或作為
path::preferred_separator
提供的備用字元。如果此字元重複,則將其視為單個目錄分隔符:/usr///////lib 與 /usr/lib 相同。
路徑可以透過 begin() 和 end() 函式返回的迭代器進行逐元素遍歷,該迭代器會遍歷根名、根目錄以及後續的檔名元素(除了標識根目錄的那個分隔符外,其他目錄分隔符都會被跳過)。如果路徑的最後一個元素是目錄分隔符,那麼最後一個迭代器將解引用為一個點檔名。
呼叫 path
的任何非 const 成員函式都會使所有引用該物件元素的迭代器失效。
如果作業系統使用不同於上述可移植通用語法的原生語法,所有庫函式都接受兩種格式的路徑名。
路徑可以與 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 |
iterator
|
const_iterator 的別名 |
[編輯] 成員常量
constexpr value_type preferred_separator [靜態] |
備用目錄分隔符,可與可移植的 / 一起使用。在 Windows 上,這是反斜槓字元 \。在 POSIX 上,這與可移植分隔符相同,都是正斜槓 / (public static 成員常量) |
[編輯] 成員函式
構造一個 path (公開成員函式) | |
銷燬一個 path 物件(公開成員函式) | |
賦值另一個路徑 (公開成員函式) | |
賦值內容 (公開成員函式) | |
連線 | |
向路徑追加元素 (公開成員函式) | |
連線兩個路徑而不引入目錄分隔符 (公開成員函式) | |
修改器 | |
擦除內容 (公開成員函式) | |
將目錄分隔符轉換為首選目錄分隔符 (公開成員函式) | |
刪除檔名路徑元件 (公開成員函式) | |
用另一個路徑替換最後一個路徑元件 (公開成員函式) | |
替換副檔名 (公開成員函式) | |
交換兩個路徑 (公開成員函式) | |
格式觀察器 | |
返回路徑的原生版本 (公開成員函式) | |
返回轉換為字串的原生路徑名格式的路徑 (公開成員函式) | |
返回轉換為字串的通用路徑名格式的路徑 (公開成員函式) | |
比較 | |
按字典順序比較兩個路徑的詞法表示 (公開成員函式) | |
分解 | |
返回路徑的根名(如果存在) (公開成員函式) | |
返回路徑的根目錄(如果存在) (公開成員函式) | |
返回路徑的根路徑(如果存在) (公開成員函式) | |
返回相對於根路徑的路徑 (公開成員函式) | |
返回父路徑的路徑 (公開成員函式) | |
返回檔名路徑元件 (公開成員函式) | |
返回路徑的主幹部分 (公開成員函式) | |
返回副檔名路徑元件 (公開成員函式) | |
查詢 | |
檢查路徑是否為空 (公開成員函式) | |
檢查相應路徑元素是否不為空 (公開成員函式) | |
檢查 root_path() 是否唯一標識檔案系統位置 (公開成員函式) | |
迭代器 | |
作為元素序列對路徑進行迭代器訪問 (公開成員函式) |
[編輯] 非成員函式
交換兩個路徑 (函式) | |
按字典順序比較兩個路徑 (函式) | |
用目錄分隔符連線兩個路徑 (函式) | |
對路徑執行流輸入和輸出 (函式) | |
從 UTF-8 編碼源建立 path (函式) |