分享

VC遍历文件夹下所有文件和文件夹

 xenophobe 2014-11-06

一、先介绍一个结构WIN32_FIND_DATA

typedef struct _WIN32_FIND_DATA

{

  DWORD dwFileAttributes; //文件属性

  FILETIME ftCreationTime; // 文件创建时间

  FILETIME ftLastAccessTime; // 文件最后一次访问时间

  FILETIME ftLastWriteTime; // 文件最后一次修改时间

  DWORD nFileSizeHigh; // 文件长度高32

  DWORD nFileSizeLow; // 文件长度低32

  DWORD dwReserved0; // 系统保留

  DWORD dwReserved1; // 系统保留

  TCHAR cFileName[ MAX_PATH ]; // 长文件名

  TCHAR cAlternateFileName[ 14 ]; // 文件的可选名

 } WIN32_FIND_DATA;

可以通过FindFirstFile()函数,根据文件路径把待操作文件的相关属性读取到WIN32_FIND_DATA结构中去:

WIN32_FIND_DATA ffd;

HANDLE hFind = FindFirstFile("c://test.dat",&ffd);

二、函数FindFirstFile

   1、声明:HANDLE FindFirstFile(LPCTSTR lpFileName,LPWIN32_FIND_DATA lpFindFileData);

2、参数:

lpFileName String,欲搜索的文件名。可包含通配符,并可包含一个路径或相对路径名

lpFindFileData WIN32_FIND_DATA,一个WIN32_FIND_DATA指针,用于装载与找到的文件有关的信息,该结构可用于后续的搜索

3、返回值:

如执行成功,返回一个搜索句柄。如果出错,返回一个INVALID_HANDLE_VALUE常数,一旦不再需要,应该用FindClose函数关闭这个句柄

4、功能

读取文件信息到一个WIN32_FIND_DATA结构中,返回这个文件的句柄

5、注释:

由这个函数返回的句柄可以作为一个参数用于FindNextFile函数。这样一来,就可以方便的枚举出与lpFileName参数指定的文件名相符的所有文件(是指文件名含有通配符)

三、函数FindNextFile

1、声明BOOL FindNextFile(HANDLE hFindFile, LPWIN32_FIND_DATA lpFindFileData);

2、参数:

HANDLE hFindFile搜索的文件句柄,函数执行的时候搜索的是此句柄的下一文件

LPWIN32_FIND_DATA lpFindFileData一个WIN32_FIND_DATA指针,

3、返回值:

如果调用成功返回一个非0值;调用失败,返回为0,可调用GetLastError来获取错误信息

4、功能

继续查找FindFirstFile函数搜索后的文件

5、注释:

这个函数可以连续调用,以方便的枚举出与lpFileName参数指定的文件名相符的所有文件

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多