- 论坛徽章:
- 0
|
/**//*******************************
* 函数名:FindFile
* 输入参数:pFilePath(路径)
* 输出参数:无
* 功能
*********************************/
void FindFile(char * pFilePath)
{
WIN32_FIND_DATA FindFileData;
HANDLE hFind = INVALID_HANDLE_VALUE;
char DirSpec[MAX_PATH + 1];// 指定路径
DWORD dwError;
strncpy (DirSpec, pFilePath, strlen(pFilePath) + 1);
strncat (DirSpec, "\*", 3);
hFind = FindFirstFile((DirSpec, &FindFileData);
if (hFind == INVALID_HANDLE_VALUE)
{
printf ("Invalid file handle. Error is %u ", GetLastError());
return ;
}
else
{
if (FindFileData.dwFileAttributes != FILE_ATTRIBUTE_DIRECTORY )
{
printf (" %s ", FindFileData.cFileName); //找到文件
}
else if(FindFileData.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY
&& strcmp(FindFileData.cFileName, ".") != 0
&& strcmp(FindFileData.cFileName, "..") != 0)
{ //找到目录
char Dir[MAX_PATH + 1];
strcpy(Dir, pFilePath);
strncat(Dir, "\", 2);
strcat(Dir, FindFileData.cFileName);
FindFile(Dir);
}
while (FindNextFile(hFind, &FindFileData) != 0)
{
if (FindFileData.dwFileAttributes != FILE_ATTRIBUTE_DIRECTORY)
{ //找到文件
printf (" %s ", FindFileData.cFileName);
}
else if(FindFileData.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY
&& strcmp(FindFileData.cFileName, ".") != 0
&& strcmp(FindFileData.cFileName, "..") != 0)
{ //找到目录
char Dir[MAX_PATH + 1];
strcpy(Dir, pFilePath);
strncat(Dir, "\", 2);
strcat(Dir, FindFileData.cFileName);
FindFile(Dir);
}
}
dwError = GetLastError();
FindClose(hFind);
if (dwError != ERROR_NO_MORE_FILES)
{
printf ("FindNextFile error. Error is %u ", dwError);
return;
}
}
}
引自 http://blog.csdn.net/benbon/archive/2007/12/01/1911230.aspx
未测试 |
|