如何在特定目录中遍历查找文件

王朝other·作者佚名  2006-01-09
宽屏版  字体: |||超大  

要在特定目录中遍历文件,应该使用FindFirstFile、FindNextFile和FindClose这三个函数。要使用该三个函数必须包含头文件Windows.h,链接Kernel32.lib。示例如下:

#define _WIN32_WINNT 0x0501

#include <windows.h>

#include <string.h>

#include <stdio.h>

int main(int argc, char *argv[])

{

WIN32_FIND_DATA FindFileData;//查找文件时要使用的数据结构

HANDLE hFind = INVALID_HANDLE_VALUE;//定义查找句柄

char DirSpec[MAX_PATH];

DWORD dwError;

printf ("Target directory is %s.\n", argv[1]);

strncpy (DirSpec, argv[1], strlen(argv[1])+1);

strncat (DirSpec, "\\*", 3);

hFind = FindFirstFile(DirSpec, &FindFileData);//使用FindFirstFile函数来开始文件查找

if (hFind == INVALID_HANDLE_VALUE)

{

printf ("Invalid file handle. Error is %u\n", GetLastError());

return (-1);

}

else

{

printf ("First file name is %s\n", FindFileData.cFileName);

//以下是循环使用FindNextFile函数来查找文件

while (FindNextFile(hFind, &FindFileData) != 0)

{

printf ("Next file name is %s\n", FindFileData.cFileName);

}

dwError = GetLastError();

if (dwError == ERROR_NO_MORE_FILES)

{

FindClose(hFind);//关闭查找句柄

}

else

{

printf ("FindNextFile error. Error is %u\n", dwError);

return (-1);

}

}

return (0);

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有