iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 22
0
Software Development

山姆大叔談 C++:從歷史談起,再給個定義—Modern C++ 解惑系列 第 22

DAY 21:讓跨平台檔案及目錄處理更輕鬆的 std::filesystem

  • 分享至 

  • xImage
  •  

C++ 程式語言規格乃 ISO 標準,任何人皆可依其規格實作 C++ 編譯器。目前各主流、非主流平台皆有 C++ 適用的編譯器。

C++ 是一個跨平台的程式語言,實務上,不同平台對於相同的「概念」的實作有所差異,Windows 以及 *nix 系統對於「檔案」、「目錄」等概念的實作,就有很多不同的地方。諸如分隔符號(\ vs. /)、檔案(目錄)路徑的處理、根目錄的定義等等,以往是由不同的函式庫或直接使用平台 API 來處理不同平台的檔案操作。

過往,人們花在處理不同系統間的檔案與目錄,必須投入相當心力。這一點隨著 C++17 引入 std::filesystem 有了改變。std::filesystem 可以說受到 Boost.filesystem 直接影響,把「檔案系統」層納入標準規格的函式庫中,長遠來看,省去許多不必要的開發資源。

我任職的公司,目前新專案預設使用 Visual Studio 提供的 C++17 實作。其中一個理由就是有 std::filesystem 可以用。

利用 std::filesystem,舉凡「截取或增刪副檔名」、「路徑比對」,還有其他常用的操作,通通讓編譯器廠商去操心,C++ 開發者只要留意用得開心,心情保持愉快就好?。


上一篇
DAY 20:從入門到進階
下一篇
DAY22:緩解開發多緒程式的痛楚—std::thread
系列文
山姆大叔談 C++:從歷史談起,再給個定義—Modern C++ 解惑26
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言