Berry's blog with C++ & .Net

Windows & VxWorks development and learning notes.

导航

VC++ 6.0 环境下遍历文件

Posted on 2009-10-10 15:07  Berry029  阅读(263)  评论(0编辑  收藏  举报
#include <stdio.h>
#include <windows.h>

void SearchFile(char FileDir[MAX_PATH],char FileType[MAX_PATH])
{
    char buffer[MAX_PATH];
    sprintf(buffer,"%s\\%s",FileDir,FileType);

    HANDLE hFind;
    WIN32_FIND_DATA dat;
    int FileNum = 0,DirNum = 0;
    hFind = ::FindFirstFile(buffer,&dat);
    if( hFind == INVALID_HANDLE_VALUE )
    {
        printf("Find Error!\n");
        return ;
    }
    else
    {
        char NewBuf[MAX_PATH];
        do
        {
        if(dat.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
        {
            if(dat.cFileName[0] == '.')
                continue;
            else
            {
            sprintf(NewBuf,"%s\\%s",FileDir,dat.cFileName);
            printf("NewDirectory : %s\n\n",NewBuf);
            DirNum ++;
            SearchFile(NewBuf,"*.*");
            }
      }
      else
      {
           sprintf(buffer,"%s\\%s",FileDir,dat.cFileName);
           FileNum ++;
           printf("Find File : %s\n",buffer);
      }
      }while(::FindNextFile(hFind,&dat));
   }

   printf("\nFind %d files and %d dirs!\n\n",FileNum,DirNum);
}

void main()
{
     SearchFile("C:\\windows\\system32","*.*");
}