#include <stdio.h>
#include <direct.h>
#include <windows.h>int main()
{
HANDLE findfile;
WIN32_FIND_DATA fd;
unsigned int ErrorNumber;
char *Errorstring; ZeroMemory(&fd, sizeof(fd));
_chdir("d:\\");
findfile=FindFirstFile("*.zip", &fd);
if(findfile=INVALID_HANDLE_VALUE)
{
ErrorNumber=GetLastError();
FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER|FORMAT_MESSAGE_FROM_SYSTEM, NULL, ErrorNumber, 0, &Errorstring, 0, NULL);
printf("%s\n", Errorstring); }
while(FindNextFile(findfile, &fd))
{
if(strcmp(fd.cFileName, ".")==0 || strcmp(fd.cFileName, "..")==0);
printf("%s\n", fd.cFileName);
}
FindClose(findfile);
return 0;
}
为什么 这里的if(findfile=INVALID_HANDLE_VALUE)语句被执行了,却返回没有错误呢?

解决方案 »

  1.   

    为什么是if(findfile=INVALID_HANDLE_VALUE)
    我什么也没看,就看了你的一句这个。我觉得应该是if(findfile==INVALID_HANDLE_VALUE)
      

  2.   

    为什么 这里的if(findfile=INVALID_HANDLE_VALUE)语句被执行了,却返回没有错误呢?
    ===========================
    晕,C++的基本语法都不记得了吗?=是赋值,不是等于。
      

  3.   

    强,你那个是赋值,这个基本上你每次执行都是返回TRUE,当然不返回错误了咯,不过你要在这个if语句前用GestLastError,就会有错误代码了
      

  4.   

    遍历文件目录,给你一个这方面的例子。
    http://www.softist.com/programemo/file/travel-dir.htm