c/c++遍歷資料夾要用到_finddata_t結構體,函式_findfirst、_findnext和_fineclose,它們都定義在標頭檔案中,下面介紹具體如何使用.
結構體_finddata_t是用來儲存檔案各種資訊的,其中成員變數分別為
unsigned atrrib:檔案屬性的儲存位置,它儲存乙個unsigned單元,用於表示檔案的屬性。檔案屬性是用位表示的,主要有以下一些:_a_arch(存檔)、_a_hidden(隱 藏)、_a_normal(正常)、_a_rdonly(唯讀)、_a_subdir(資料夾)、_a_system(系統)。這些都是 在中定義的巨集,可以直接使用,而本身的意義其實是乙個無符號整型(只不過這個整型應該是2的幾次冪,從而保證只有一位為1,而其 他位為0)。既然是位表示,那麼當乙個檔案有多個屬性時,它往往是通過位或的方式,來得到幾個屬性的綜合。例如唯讀+隱藏+系統屬性,應該 為:_a_hidden| _a_rdonly |_a_system 。
time_t time_create:儲存檔案建立的時間。
time_t time_access:儲存檔案最後一次被訪問的時間。
time_t time_write:儲存檔案最後一次被修改的時間。
_fsize_t size:儲存檔案的大小。
char name[_max_fname]:儲存檔案的檔名。
_findfirst(char*filespec,struct_finddata_t*fileinfo);
返回值:如果查詢成功的話,將返回乙個唯一查詢用的控制代碼,這個控制代碼在_findnext函式中 被使用,若失敗,將返回1;
filespec:檔案的路徑(字串?)
char *filename = "f:\\slice_bw\\*.png";
struct _finddata_t fileinfo;
long handle;
handle = _findfirst(filename, &fileinfo);
fileinfo:用來存放檔案資訊的結構體指標,結構體必須在呼叫次函式前宣告。不過不用初始化,只要分配記憶體空間就可以,函式成功後,函式會把找到的檔案資訊放入這個結構體中。
_findnext(long handle,struct_findata_t*fileinfo);
handle:即由_findfirst函式返回回來的控制代碼。
fileinfo:檔案資訊結構體的指標,找到檔案後,函式將該檔案資訊放入此結構體中。
while (!_findnext(handle, &fileinfo))
int _findclose( long handle );
返回值:成功返回0,失敗返回-1。
引數:
handle :_findfirst函式返回回來的控制代碼。
_findclose(handle);
先用_findfirst查詢第乙個檔案,若成功則用返回的控制代碼呼叫_findnext函式查詢其他的 檔案,當查詢完畢後用,用_findclose函式結束查詢。
#include
#include
using
namespace
std;
void main()
qt中的遍歷方法:
path=qfiledialog::getexistingdirectory(null, tr("選擇資料夾"),"d:\\",qfiledialog::showdirsonly);
qdir *dir=
new qdir(path);
qstringlist filter;
//filter<<"*.dat";
//dir->setnamefilters(filter);
qlist
*fileinfo=
new qlist(dir->entryinfolist(filter));
注釋掉的兩行是用來檔案過濾用的,如果你要指定檔案字尾名在 filter<<」*.dat」 寫就好了
檔案數目:fileinfo->count();
檔名稱:fileinfo->at(i).filename();
檔案路徑(包含檔名):fileinfo->at(i).filepath();
也可參考:
C C 遍歷目錄下的所有檔案
1.遍歷某個目錄下的所有檔案 遍歷某個目錄下的所有檔案,並輸出檔名和檔案大小。include include include void listfiles const char dir int main void listfiles const char dir doelse while findn...
遍歷整個目錄樹的檔案和目錄
在開發中我們常常需要遍歷整個目錄樹,這是我們寫乙個這樣的工具類,以後就方便多了,這個類中可以通過使用local 方法產生由本地目錄中的檔案構成的file物件陣列,或者通過使用walk 方法產生給定目錄下的由整個目錄樹中所有檔案構成的list.例子 輔助列印的工具類 public class ppri...
Linux shell 遍歷資料夾檔案和目錄的指令碼
寫乙個遍歷資料夾目錄和檔案的指令碼,預設搜尋檔案,加上 d 引數搜尋目錄,可以設定搜尋深度,引數設定模仿find 命令,當然效率沒有find命令高,日常使用還是使用find命令,此指令碼僅做參考 bin bash function isnumber is dir 0 判斷是否是搜尋目錄 for p ...