1. 程式人生 > >c語言實現windows下檔案遍歷

c語言實現windows下檔案遍歷

參考網上的程式碼,寫的註釋比較完整的程式碼。
例程如下,在article目錄下,有若干檔案和目錄。

#include <stdio.h>
#include <windows.h>

void loopThrough(char* path,char* findType)
{
    char currentPath[200],subPath[200];
    WIN32_FIND_DATA findFileData;
    HANDLE hFind;

    sprintf(currentPath,"%s\\%s",path,findType);  
    //find first file or directory under path
hFind=FindFirstFile(currentPath,&findFileData); if(hFind==INVALID_HANDLE_VALUE) {//first file or directory non-exists printf("INVALID HANDLE!\n"); return; } else {//first file or directory exists while(TRUE) { if(findFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) {//find directory
if(findFileData.cFileName[0]!='.') { sprintf(subPath,"%s\\%s",path, findFileData.cFileName); loopThrough(subPath,findType); } } else {//find file printf
("filename:%s\\%s\n",path, findFileData.cFileName); //print } if(!FindNextFile(hFind,&findFileData)) {//find next file or directory break; } } FindClose(hFind); // close HANDLE } } int main(int argc,char* argv[]) { loopThrough(".\\article","*.*"); getchar(); return 1; }

執行結果如下:
這裡寫圖片描述