#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)语句被执行了,却返回没有错误呢?
#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)语句被执行了,却返回没有错误呢?
我什么也没看,就看了你的一句这个。我觉得应该是if(findfile==INVALID_HANDLE_VALUE)
===========================
晕,C++的基本语法都不记得了吗?=是赋值,不是等于。
http://www.softist.com/programemo/file/travel-dir.htm