外掛程式開發技術說明 15 檔案自動分目錄儲存

2021-07-05 07:22:12 字數 1391 閱讀 2199

用途: .當檔案數量很大,在單一目錄下時無法容納,需要把檔案自動分散到不同的目錄下.

特性:.指定乙個$home目錄,可限定每個目錄下最多檔案數量

.分級目錄儲存,如$home\1,$home\2.在$home\1下再分目錄儲存,以保證可容納足夠數量的檔案.

按每個目錄最大檔案數2000個計算,3級可儲存的檔案數為:2000*2000*2000個檔案

.檔名:外部指定,檔名重複時覆蓋

.並行考慮:多程序或多執行緒的情況下,不同程序設定不同的輸出目錄:如把$home\1,$home\2分配給不同的程序。

其中,1,2作為域。輸出檔案設定主目錄外,每個程序指定乙個輸出域。

/

/// 目錄層級資訊

struct cdirlevelinfo };/

class ls_api cfilestoragedisperser

cdirlevelinfo *dli_; ///< 目錄層級資訊

public:

string root_path_; ///< 主路徑

unsigned long cur_file_num_; ///< 當前檔案目錄下檔案數

unsigned long max_file_num_; ///< 每目錄最大檔案個數

unsigned short dir_level_; ///< 子目錄級數

ace_thread_mutex mutex_; ///<

public:

cfilestoragedisperser();

~cfilestoragedisperser();

int setrootpath(string &path,unsigned int max_num=2000);

string& getrootpath()

void setdirlevel(unsigned short num);

int outputfile(const char *fn,unsigned char *buffer,unsigned int len,string *path_file); ///< 輸出檔案

};

cfilestoragedisperser fsd;

// fsd.setdirlevel(2); ///< 設定目錄級數為2級

string root = "filehome\\test_pic";

fsd.setrootpath(root,2); ///< 每個目錄下最多2個檔案

int file_num=40; ///< 建立40個檔案

unsigned long len = 10;

unsigned char *buffer = new unsigned char[len];

for (int i=0;i

15,檔案操作

所有檔案都採用二進位制方式記錄數字 如果檔案裡的所有二進位制內容都對應字元則這種檔案叫文字檔案 除了文字檔案以外的所有檔案叫做二進位制檔案 文字檔案可以當作二進位制檔案使用 檔案操作的基本步驟 1.開啟檔案 fopen 2.操作檔案 fread fwrite 3.關閉檔案 fclose fopen函...

15 檔案操作

define crt secure no warnings include 標準輸入輸出庫 include 系統庫 include define buf size 1024 typedef struct stu stu int fwritestr char pcfilename,char pc in...

Cortex M0檔案說明

1 cortexm0ds logic.v cortex m0 designstart處理器邏輯層v檔案。2 cortexm0ds.v cortex m0 designstart處理器巨集單元級描述。3 ahbdcd.v ahb匯流排位址解碼器。4 ahbmux.v ahb匯流排從裝置多路選擇器。5 ...