c 遍歷指定資料夾下的所有的檔案

2022-09-08 04:00:14 字數 1934 閱讀 1511

linux:

#include

#include

#include

#include

int main(int argc,char *ar**)

if((dp=opendir(ar**[1]))==null)

printf("can't open %s",ar**[1]);

while (((dirp=readdir(dp))!=null) && (n<=50))

printf("\n");

closedir(dp);

return 0;

}某牛人封裝好的類

#include "stdafx.h"

#include "stdlib.h"

#include "direct.h"

#include "string.h"

#include "io.h"

#include "stdio.h"

#include

using namespace std;

class cbrowsedir

;cbrowsedir::cbrowsedir()

bool cbrowsedir::setinitdir(const char *dir)

bool cbrowsedir::beginbrowse(const char *filespec)

bool cbrowsedir::browsedir(const char *dir,const char *filespec)

} while (_findnext(hfile,&fileinfo) == 0);

_findclose(hfile);

}//查詢dir中的子目錄

//因為在處理dir中的檔案時,派生類的processfile有可能改變了

//當前目錄,因此還要重新設定當前目錄為dir。

//執行過_findfirst後,可能系統記錄下了相關資訊,因此改變目錄

//對_findnext沒有影響。

_chdir(dir);

if ((hfile=_findfirst("*.*",&fileinfo)) != -1)

}} while (_findnext(hfile,&fileinfo) == 0);

_findclose(hfile);

}return true;

}bool cbrowsedir::processfile(const char *filename)

void cbrowsedir::processdir(const char

*currentdir,const char *parentdir)

//從cbrowsedir派生出的子類,用來統計目錄中的檔案及子目錄個數

class cstatdir:public cbrowsedir

//返回檔案個數

int getfilecount()

//返回子目錄個數

int getsubdircount()

protected:

//覆寫虛函式processfile,每呼叫一次,檔案個數加1

virtual bool processfile(const char *filename)

//覆寫虛函式processdir,每呼叫一次,子目錄個數加1

virtual void processdir

(const char *currentdir,const char *parentdir)

};void main()

//開始遍歷

statdir.beginbrowse("*.*");

// printf("檔案總數: %d\n子目錄總數:%d\n",statdir.getfilecount(),statdir.getsubdircount());}}

**來自:

ps:我的新

部落格

C 遍歷資料夾下所有檔案

主要用到 finddata t結構體,和 findfirst findnext findclose三個函式。他們都屬於io.h標頭檔案。1 結構體 用來儲存檔案各種資訊 struct finddata t 1 unsigned atrrib 檔案屬性的儲存位置。它儲存乙個unsigned單元,用於表...

c 遞迴遍歷資料夾下所有指定字尾的檔案

只在windows下測試通過,linux沒有測試。string p void getfiles string path,vector files,string postfix else while findnext hfile,fileinfo 0 findclose hfile 最前面的 stri...

C 遍歷資料夾下的所有檔案

資料分多個檔案儲存,讀取資料就需要對多個檔案進行操作。首先就需要定位到檔案的名字,之後再對檔案進行相應的讀寫操作。多次涉及多檔案的讀寫操作,現將這個實現總結一下,方便自己和他人使用。具體 如下 cpp view plain copy include stdafx.h include include ...