名稱空間
變體
操作

std::experimental::filesystem::path

來自 cppreference.com
< cpp‎ | experimental‎ | fs
 
 
實驗性
技術規範
檔案系統庫 (檔案系統 TS)
庫基礎 (庫基礎 TS)
庫基礎 2 (庫基礎 TS v2)
庫基礎 3 (庫基礎 TS v3)
並行性擴充套件 (並行性 TS)
並行性擴充套件 2 (並行性 TS v2)
併發性擴充套件 (併發性 TS)
併發擴充套件 2 (併發 TS v2)
概念 (概念 TS)
範圍 (範圍 TS)
反射 (反射 TS)
數學特殊函式 (特殊函式 TR)
實驗性非 TS
模式匹配
線性代數
std::execution
契約
2D 圖形
 
 
 
定義於標頭檔案 <experimental/filesystem>
class path;
(檔案系統 TS)

path 型別的物件表示檔案系統上的路徑。只處理路徑的語法方面:路徑名可能表示一個不存在的路徑,甚至是一個在當前檔案系統或作業系統上不允許存在的路徑。

路徑名有以下語法

  1. 根名(root-name)(可選):標識具有多個根的檔案系統上的根(例如 "C:""//myserver")。POSIX 檔案系統只有一個根。
  2. 根目錄(root-directory)(可選):一個目錄分隔符,如果存在,則將此路徑標記為絕對路徑。如果它不存在(並且除了根名之外的第一個元素是檔名),則該路徑是相對路徑,需要另一個路徑作為起始位置來解析為檔名。
  3. 零個或多個以下內容
  • 檔名(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_typepath
iterator const_iterator 的別名

[編輯] 成員常量

constexpr value_type preferred_separator
[靜態]
備用目錄分隔符,可與可移植的 / 一起使用。在 Windows 上,這是反斜槓字元 \。在 POSIX 上,這與可移植分隔符相同,都是正斜槓 /
(public static 成員常量)

[編輯] 成員函式

構造一個 path
(公開成員函式) [編輯]
銷燬一個 path 物件
(公開成員函式) [編輯]
賦值另一個路徑
(公開成員函式) [編輯]
賦值內容
(公開成員函式) [編輯]
連線
向路徑追加元素
(公開成員函式) [編輯]
連線兩個路徑而不引入目錄分隔符
(公開成員函式) [編輯]
修改器
擦除內容
(公開成員函式) [編輯]
將目錄分隔符轉換為首選目錄分隔符
(公開成員函式) [編輯]
刪除檔名路徑元件
(公開成員函式) [編輯]
用另一個路徑替換最後一個路徑元件
(公開成員函式) [編輯]
替換副檔名
(公開成員函式) [編輯]
交換兩個路徑
(公開成員函式) [編輯]
格式觀察器
返回路徑的原生版本
(公開成員函式) [編輯]
返回轉換為字串的原生路徑名格式的路徑
(公開成員函式) [編輯]
返回轉換為字串的通用路徑名格式的路徑
(公開成員函式) [編輯]
比較
按字典順序比較兩個路徑的詞法表示
(公開成員函式) [編輯]
分解
返回路徑的根名(如果存在)
(公開成員函式) [編輯]
返回路徑的根目錄(如果存在)
(公開成員函式) [編輯]
返回路徑的根路徑(如果存在)
(公開成員函式) [編輯]
返回相對於根路徑的路徑
(公開成員函式) [編輯]
返回父路徑的路徑
(公開成員函式) [編輯]
返回檔名路徑元件
(公開成員函式) [編輯]
返回路徑的主幹部分
(公開成員函式) [編輯]
返回副檔名路徑元件
(公開成員函式) [編輯]
查詢
檢查路徑是否為空
(公開成員函式) [編輯]
檢查相應路徑元素是否不為空
(公開成員函式) [編輯]
檢查 root_path() 是否唯一標識檔案系統位置
(公開成員函式) [編輯]
迭代器
作為元素序列對路徑進行迭代器訪問
(公開成員函式) [編輯]

[編輯] 非成員函式

交換兩個路徑
(函式) [編輯]
按字典順序比較兩個路徑
(函式) [編輯]
用目錄分隔符連線兩個路徑
(函式) [編輯]
對路徑執行流輸入和輸出
(函式) [編輯]
從 UTF-8 編碼源建立 path
(函式) [編輯]