我用FindFirstFile找目录都很正常,找到目录后,找目录里的文件找不到
求各位大侠帮忙看下啊其中filename包含扩展名,即形式为 ***.*** 不知道这样对不对啊int search_file()
{
HANDLE hFindFile;
WIN32_FIND_DATA FileData;
hFindFile = FindFirstFile(filename.c_str(),&FileData);
if( hFindFile == INVALID_HANDLE_VALUE )
{
return(1);
}
else
{
do{if(!(FileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY ))
{
return(0);
}
}while(FindNextFile(hFindFile,&FileData)); }
FindClose(hFindFile);
return(1);}
求各位大侠帮忙看下啊其中filename包含扩展名,即形式为 ***.*** 不知道这样对不对啊int search_file()
{
HANDLE hFindFile;
WIN32_FIND_DATA FileData;
hFindFile = FindFirstFile(filename.c_str(),&FileData);
if( hFindFile == INVALID_HANDLE_VALUE )
{
return(1);
}
else
{
do{if(!(FileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY ))
{
return(0);
}
}while(FindNextFile(hFindFile,&FileData)); }
FindClose(hFindFile);
return(1);}
x:\folder\subf\*用*就可以,不要用***.***
如果是制定文件名也可以
那如果不加扩展名的话,找到的文件还要进一步看扩展名是否正确,扩展名在WIN32_FIND_DATA 的什么地方呢?
{
printf ("Invalid file handle. Error is %u\n", GetLastError());
return (-1);
}
else
{
do
{
if(FindFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
char szSubDir[MAX_PATH];
strcpy(szSubDir, pFindPath);
strncat(szSubDir, "\\", 2);
strncat(szSubDir, FindFileData.cFileName, strlen(FindFileData.cFileName)); if(strcmp(FindFileData.cFileName, ".") != 0 &&
strcmp(FindFileData.cFileName, "..") != 0)
{
BrowseDir(szSubDir);
}
else
{
printf("Sub directory name is %s\n", FindFileData.cFileName);
}
}
else
{
printf("Next file name is %s\n", FindFileData.cFileName);
}
}while(FindNextFile(hFind, &FindFileData) != 0);
dwError = GetLastError();
FindClose(hFind);
if (dwError != ERROR_NO_MORE_FILES)
{
printf ("FindNextFile error. Error is %u\n", dwError);
return (-1);
}
}
{
return(0);
}