VC下遍歷資料夾中的所有檔案的幾種方法

2021-06-22 06:11:23 字數 2298 閱讀 4072

一、使用::findfirstfile和::findnextfile方法

#include "stdafx.h"

#include #include #include #define len 1024

int filecount = 0;

// 深度優先遞迴遍歷目錄中所有的檔案

bool  directorylist(lpcstr path)

while(::findnextfile(herror, &finddata))

// 構造完整路徑

wsprintf(fullpathname, "%s\\%s", path,finddata.cfilename);

filecount++;

// 輸出本級的檔案

printf("%s\n", fullpathname);

if (finddata.dwfileattributes & file_attribute_directory)

}return 0;

}void main()

二、利用cfilefind類較簡潔的實現該功能

void cmodeldlg::findbmpfile(cstring strfoldername)

else

}tempfind.close();

return;

}三、使用io.h中的_findfirst和_findnext方法

在io.h、wchar.h中提供了_finddata_t, _wfinddata_t, _wfinddatai64_t 結構,通過_findfirst可以得到滿足條件的第乙個檔案的控制代碼,如下:

long _findfirst( char *filespec, struct _finddata_t *fileinfo ),然後你可以使用_findnext函式得到用_findfirst的控制代碼後的檔案指標,如此就可以遍歷所有滿足條件的檔案。其中_finddata_t 結構包括了檔案的相關資訊:檔名,建立日前等屬性,你可以從你的機器中的io.h檔案中查詢相應的定義。當然不要忘了,使用_findclose 函式關閉相應控制代碼

例如:下面程式實現把資料夾中的檔案名字顯示在視窗的標題欄中。

cstring pathwild ="你的目錄//*.jpg" ;

struct _finddata_t c_file;

long hfile;

if( (hfile = _findfirst( lpctstr(pathwild), &c_file )) == -1l )

else

}else

if(!findnextfile(hfind,&findfiledata))  break;

}  findclose(hfind);

}二、利用cfilefind類較簡潔的實現該功能

void cmodeldlg::findbmpfile(cstring strfoldername)

else

}tempfind.close();

return;

}三、使用io.h中的_findfirst和_findnext方法

在io.h、wchar.h中提供了_finddata_t, _wfinddata_t, _wfinddatai64_t 結構,通過_findfirst可以得到滿足條件的第乙個檔案的控制代碼,如下:

long _findfirst( char *filespec, struct _finddata_t *fileinfo ),然後你可以使用_findnext函式得到用_findfirst的控制代碼後的檔案指標,如此就可以遍歷所有滿足條件的檔案。其中_finddata_t 結構包括了檔案的相關資訊:檔名,建立日前等屬性,你可以從你的機器中的io.h檔案中查詢相應的定義。當然不要忘了,使用_findclose 函式關閉相應控制代碼

例如:下面程式實現把資料夾中的檔案名字顯示在視窗的標題欄中。

cstring pathwild ="你的目錄//*.jpg" ;

struct _finddata_t c_file;

long hfile;

if( (hfile = _findfirst( lpctstr(pathwild), &c_file )) == -1l )

else

while (_findnext(hfile, &c_file) == 0);

} _findclose(hfile);

對了,別忘了在你的工程中包括標頭檔案io.h

do while (_findnext(hfile, &c_file) == 0);

} _findclose(hfile);

對了,別忘了在你的工程中包括標頭檔案io.h

VC遍歷資料夾下所有檔案和資料夾

2010 03 25 16 59 一 先介紹乙個結構win32 find data typedef struct win32 find data win32 find data win32 find data ffd handle hfind findfirstfile c ffd 二 函式find...

VC遍歷資料夾下所有檔案和資料夾

一 先介紹乙個結構win32 find data typedef struct win32 find data win32 find data 可以通過 findfirstfile 函式,根據檔案路徑把待操作檔案的相關屬性讀取到 win32 find data 結構中去 win32 find dat...

VC下遍歷資料夾和檔案

一 先介紹乙個結構win32 find data typedef struct win32 find data win32 find data win32 find data ffd handle hfind findfirstfile c ffd 二 函式findfirstfile 1 宣告 ha...