c语言实现windows下文件遍历

参考网上的代码,写的注释比较完整的代码。
例程如下,在article目录下,有若干文件和目录。

#include 
#include 

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;
}

运行结果如下:
c语言实现windows下文件遍历_第1张图片

你可能感兴趣的:(c语言)