Struct _finddata_t結構體可以用來處理各種文件的文件信息,使用該結構體需要添加頭文件io.h。
它的定義如下所示
對于該結構體中的各個變量的定義如下所示:

unsigned attrib:無符號整形、位表示。它的作用是表示文件的屬性,一般來說,文件的屬性有如下幾種:_A_ARCH(存檔)、 _A_HIDDEN(隱藏)、_A_NORMAL(正常)、_A_RDONLY(只讀)、_A_SUBDIR(文件夾)、_A_SYSTEM(系統(tǒng))
time_t time_create:表示從1970年1月1日0時0分0秒到現(xiàn)在時刻的秒數(shù)。
time_t time_access:文件最后一次被訪問的時間
time_t time_write:文件最后一次被修改的時間
_fsize_t size:文件的大小。
char name[_MAX_FNAME]:文件的文件名,這里的_MAX_FNAME是一個常量宏,它在頭文件中被定義,表示的是文件名的最大長度。
為了使用這個結構體將文件的信息存儲到該結構體的內(nèi)存空間,需要搭配使用_findfirst()、_findnext()、_findclose()三個函數(shù)使用。
首先用_findfirst函數(shù)查找第一個文件,若成功則用返回的句柄,調(diào)用_findnext函數(shù)查找其他的文件,當查找文件完成之后,就會用_findclose函數(shù)結束查找。
long _findfirst( char *filespec, struct _finddata_t *fileinfo );
hFile = _findfirst(p.assign(path).append("\\*").c_str(), &fileinfo))
p.assign(path) 給P賦path的值? ?后 連接 “\\*” 字符串
c_str()函數(shù)返回一個指向正規(guī)C字符串的指針
這是為了與c語言兼容,在c語言中沒有string類型,故必須通過string類對象的成員函數(shù)c_str()把string 對象轉(zhuǎn)換成c中的字符串樣式。
返回值:如果查找成功,那么就返回一個long型的唯一查找用的句柄。這個句柄會在_findnext函數(shù)中被使用。失敗的話就會返回0.
參數(shù):filespec:標明文件的字符串。例如:*.c?,則表示當前文件夾下的所有后綴為C的文件。
?????????? fileinfo:這里就是用來存放文件信息的結構體的指針。函數(shù)成功后,函數(shù)會把找到的文件的信息放入這個結構體所分配的內(nèi)存空間中。
int _findnext( long handle, struct _finddata_t *fileinfo );
返回值:若成功返回0,否則返回-1。
參數(shù):handle:即由_findfirst函數(shù)返回回來的句柄。
int _findclose( long handle );
返回值:成功返回0,失敗返回-1。