建議使用 Visual Studio 2017

<filesystem>

 

如需 Visual Studio 2017 的最新文件請參閱 Visual Studio 2017 文件

包含標頭<>>類別和函式會使用並擷取路徑、 檔案和目錄的相關資訊的存取。

#include <experimental/filesystem> // C++-standard header file name  
#include <filesystem> // Microsoft-specific implementation header file name  
using namespace std::experimental::filesystem::v1;  

System_CAPS_ICON_important.jpg 重要

Visual Studio 2015 版相同標頭還不是 c + + 標準。 Visual c + + 2015年實作最終草稿標準,位於ISO/IEC JTC SC 1/22/WG 21 N4100

這個標頭支援兩個廣泛的主機作業系統類別之一的檔案系統:Microsoft Windows 和 Posix。

雖然大部分功能對這兩個作業系統而言是共通的,不過本文還是指出其中的差異。 例如:

  • Windows 支援多個根名稱,例如 c︰ 或\\network_name。 檔案系統所組成的樹狀結構,每個都有它自己的根目錄,例如 c:\ 樹系或\\network_name\,和每個都有它自己目前的目錄用於相對路徑 (一個不是絕對路徑名稱)。

  • Posix 支援不含根目錄名稱的單一樹狀目錄、單一根目錄 / 和單一目前目錄。

另一項重大差異是路徑名稱的原生表示法:

  • Windows 會使用 wchar_t,編碼為 utf-16 (一或兩個項目為每個字元) 的以 null 終止的序列。

  • Posix 會使用以 null 終止的序列的字元,編碼為 utf-8 (一或多個項目為每個字元)。

  • 類別路徑物件以原生格式來儲存路徑名稱,但可輕鬆地在這個預存格式和幾個外部格式之間進行轉換:

    • Char,編碼為作業系統所偏好的 null 終止的序列。

    • 以 null 結束的字元,編碼為 utf-8 序列。

    • Wchar_t,編碼為作業系統所偏好的 null 終止的序列。

    • Char16_t,編碼為 utf-16 的以 null 終止的序列。

    • Char32_t,編碼為 utf-32 的 null 終止的序列。

表示之間 interconversions 居中協調,視需要使用一或多個codecvtfacet。 如果未指定特定地區設定物件,則會從全域地區設定取得這些 Facet。

另一項差異是每個作業系統讓您用來指定檔案或目錄存取權限的詳細資料:

  1. Windows 會記錄檔案是唯讀或可寫入,以及對目錄而言沒有意義的屬性。

  2. Posix 會記錄檔案可讀取、寫入或執行 (如果是目錄則記錄可否掃描);執行這些權限的人員為擁有者、擁有者群組或所有人;以及其他一些權限。

這兩個系統在根目錄名稱之後有通用的路徑名稱結構。 路徑名稱若為 c:/abc/xyz/def.ext:

  • 根名稱為 c:。

  • 根目錄為 /。

  • 根路徑為 c:/。

  • 相對路徑為 abc/xyz/def.ext。

  • 父路徑為 c:/abc/xyz。

  • 檔案名稱為 def.ext。

  • 主體為 def。

  • 副檔名為 .ext。

一項較不重要的差異是路徑名稱中目錄序列之間的 慣用分隔符號。 這兩個作業系統可讓您撰寫以正斜線 /,但在某些內容中 Windows 慣用反斜線\。

最後,路徑物件的一個重要功能是,每當您可以使用它們的檔名引數所需要的標頭中定義的類別是<> >。

如需詳細資訊和程式碼範例,請參閱檔案系統功能 (c + +)

名稱說明
directory_entry 類別描述所傳回的物件directory_iteratorrecursive_directory_iterator和包含路徑。
directory_iterator 類別描述可循序遍訪檔案系統目錄中的檔案名稱的輸入迭代器。
filesystem_error 類別擲回例外狀況的基底類別,以報告低階系統溢位。
路徑類別定義一個類別,以儲存適合做為檔案名稱之樣板類型 String 的物件。
recursive_directory_iterator 類別描述可循序遍訪檔案系統目錄中的檔案名稱的輸入迭代器。 迭代器也可以下降到子目錄。
file_status 類別包裝 file_type
名稱說明
space_info 結構保留磁碟區的相關資訊。

<>>函式

<>>運算子

名稱說明
copy_option 列舉列舉搭配使用 copy_file ,並在已存在目的地檔案時決定行為。
directory_options 列舉型別指定目錄迭代器之選項的列舉。
file_type 列舉檔案類型的列舉。
列舉權限用來傳達權限和權限選項的位元遮罩類型

標頭檔參考

顯示: