一般程式設計都有訪問檔案系統的需求,什麼列出目錄啦,刪除,建立目錄啦,自己寫老費勁了,又要考慮跨平台實現,費心傷神。
c++17把這個給統一了,加了個filesystem,但是對於不想用或不能用c++17的人就麻煩了。
這裡有個輪子可以拿去用,基於c++11實現,與c++17相容。非常好用。
使用示例:
參見需要注意的是,遍歷目錄的時候,如果不進行遞迴遍歷,需要使用fs::directory_iterator 。
**內不帶獲取可執行檔案路徑的函式,可以看我前面的文章。
#include #include #include #if defined(__cplusplus) && __cplusplus >= 201703l && defined(__has_include)
#if __has_include()
#define ghc_use_std_fs
#include namespace fs = std::filesystem;
#endif
#endif
#ifndef ghc_use_std_fs
#include namespace fs = ghc::filesystem;
#endif
int main(int argc, char* ar**)
#endif
if(argc > 2)
fs::path dir;
if(argc == 2)
uint64_t totalsize = 0;
int totaldirs = 0;
int totalfiles = 0;
int maxdepth = 0;
try
if(de.is_regular_file())
else if(de.is_directory()) }}
catch(fs::filesystem_error fe)
std::cout << totalsize << " bytes in " << totalfiles << " files and " << totaldirs << " directories, maximum depth: " << maxdepth << std::endl;
return 0;
}
基於範圍的for迴圈 C 11
本篇部落格會寫c 11標準的中的乙個新特性範圍for,並解釋它的使用方法。那麼什麼是範圍for呢?在使用早期c 標準的遍歷乙個陣列,我們會使用這段 void testfor for int i 0 i sizeof array sizeof array 0 i 普通迴圈 for int p arra...
基於C 11的事件驅動框架
嵌入式開發中對資源是有嚴格的要求的,在學校的時候一直使用qt,可是qt庫越來越大,在一些低端的嵌入式裝置上,我們可能只是簡單的幾個介面。這裡我想基於opengl開發乙個簡單的程式框架,用來開速開發嵌入式系統應用。本專案現在已經實現了事件迴圈系統,並且可以正常工作。小弟第一次搭建ui框架,可是資料太少...
基於C 11實現的執行緒池
最近在整理之前寫的一些東西,方便以後檢視 實現的主要原理是 乙個同步佇列,外部往同步佇列裡新增任務,然後喚醒執行緒有任務需要處理,執行緒取出任務即可。同步佇列 syncquene.hpp include include include templateclass syncquene bool ful...