freecplus框架 目錄操作

2022-07-04 21:36:10 字數 2448 閱讀 3745

目錄本文介紹的是freecplus框架的目錄操作函式和類。

函式和類的宣告檔案是freecplus/_freecplus.h。

函式和類的定義檔案是freecplus/_freecplus.cpp。

示例程式位於freecplus/demo目錄中。

編譯規則檔案是freecplus/demo/makefile。

在linux下,如果想建立乙個"/tmp/aaa/bbb/ccc/ddd/data.xml"的檔案,必須先建立"/tmp/aaa/bbb/ccc/ddd",步驟如下:

1)如果"/tmp"目錄不存在,建立"/tmp"。

2)如果"/tmp/aaa"目錄不存在,建立"/tmp/aaa"。

3)如果"/tmp/aaa/bbb"目錄不存在,建立"/tmp/aaa/bbb"。

4)如果"/tmp/aaa/bbb/ccc"目錄不存在,建立"/tmp/aaa/bbb/ccc"。

5)如果"/tmp/aaa/bbb/ccc/ddd"目錄不存在,建立"/tmp/aaa/bbb/ccc/ddd"。

6)建立"/tmp/aaa/bbb/ccc/ddd/data.xml"檔案。

這些操作雖然沒有多少技術含量,但也很煩人。

mkdir函式根據絕對路徑的檔名或目錄名逐級的建立目錄。

函式宣告:

bool mkdir(const char *pathorfilename,bool bisfilename=true);
引數說明:

pathorfilename:絕對路徑的檔名或目錄名。

bisfilename:說明pathorfilename的型別,true-pathorfilename是檔名,否則是目錄名,預設值為true。

返回值:true-建立成功,false-建立失敗,如果返回失敗,原因有大概有三種情況:1)許可權不足;2)pathorfilename引數不是合法的檔名或目錄名;3)磁碟空間不足。

示例(demo30.cpp)

/*

* 程式名:demo30.cpp,此程式演示freecplus框架中採用mkdir函式根據絕對路徑的檔名或目錄名逐級的建立目錄。

*/#include "../_freecplus.h"

int main()

freecplus框架把獲取某目錄及其子目錄中的檔案列表資訊的功能封裝成cdir類。

類的宣告:

// 獲取某目錄及其子目錄中的檔案列表資訊。

class cdir

;

cdir類的成員變數和函式的說明文字在類的宣告中已詳細描述。

我們通過乙個應用場景來演示cdir類的用法。

先執行以下指令碼生成測試目錄和檔案。

mkdir /tmp/root

mkdir /tmp/root/aaa

mkdir /tmp/root/bbb

cd freecplus

cp freecplus.* /tmp/root/.

cp demo/demo1* /tmp/root/aaa/.

cp demo/demo2* /tmp/root/bbb/.

cp demo/makefile /tmp/root/bbb/.

執行以上指令碼後,在/tmp/root目錄中的目錄和檔案列表如下:

示例(demo32.cpp)

/*

* 程式名:demo32.cpp,此程式演示freecplus框架中採用cdir類獲取某目錄及其子目錄中的檔案列表資訊。

*/#include "../_freecplus.h"

int main()

while(dir.readdir()==true)

}

執行效果

注意事項:

1)每次呼叫readdir方法後,把cdir類其它成員變數的值輸出到螢幕,觀察執行效果。

2)opendir方法的in_matchstr引數非常重要,在實際開發中應用廣泛。

3)如果檔名圓點"."打頭,opendir方法將不讀取這些檔案,如果您希望讀取這些檔案,可以修改_opendir方法中的源**。

4)openddir方法的in_maxcount引數設定了每次掃瞄目錄中的檔案數量,建議不超過10000,如果取值過大,開啟目錄的時間會比較長,還會消耗比較多的記憶體。

5)opendir的bsort引數設定是否對m_vfilename容器進行排序,排序會消耗資源和時間,可以不排序就不排序。

freecplus框架 日誌檔案操作

本文介紹的是freecplus框架中日誌檔案操作的方法。函式和類的宣告檔案是freecplus freecplus.h。函式和類的定義檔案是freecplus freecplus.cpp。示例程式位於freecplus demo目錄中。編譯規則檔案是freecplus demo makefile。對...

freecplus框架 xml解析

本文介紹的是採用freecplus框架的解析xml格式字串函式。函式和類的宣告檔案是freecplus freecplus.h。函式和類的定義檔案是freecplus freecplus.cpp。示例程式位於freecplus demo目錄中。編譯規則檔案是freecplus demo makefi...

freecplus框架 xml解析

本文介紹的是採用freecplus框架的解析xml格式字串函式。函式和類的宣告檔案是freecplus freecplus.h。函式和類的定義檔案是freecplus freecplus.cpp。示例程式位於freecplus demo目錄中。編譯規則檔案是freecplus demo makefi...