c語言實現windows下檔案遍歷
阿新 • • 發佈:2019-02-08
參考網上的程式碼,寫的註釋比較完整的程式碼。
例程如下,在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;
}
執行結果如下: