请教_findclose关闭文件句柄的问题

江南烟雨梦 2009-12-08 12:39:31
用_findfirst、_findnext和_findclose读取一个文件夹内所有的XML文件,但是在最后_findclose的时候,出错了.

void GetRoomData(Ktv_RoomArray &tmpKtvRoomArray)
{
long hFile;
const char *filPath = "*.xml";

_finddata_t fileInfo;

hFile =_findfirst(filPath, &fileInfo);
if(hFile == -1)
{
AfxMessageBox("没有可以读取的XML数据文件!");
_findclose(hFile);
return ;
}

do
{
CMarkup xml;
if(!xml.Load(fileInfo.name)
{
AfxMessageBox("加载配置文件失败!");
return ;
}

if(xml.FindElem("class"))
{
if(xml.FindChildElem("content"))
{
xml.IntoElem();
while(xml.FindChildElem("item"))
{
Ktv_Room *item = new Ktv_Room;

.........

tmpKtvRoomArray.push_back(item);
}
xml.OutOfElem();
}
}
}
while (!_findnext(hFile, &fileInfo););
_findclose(hFile); //执行完此处后出错——中断,“用户未处理的断点”,但是调用此函数的地方,设置了断点, /关闭句柄
}

为什么会出现中断呢?
最后那个_findclose(hFile);关闭的是一个文件,还是所有的呢?
...全文
185 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
beginnow 2009-12-08
  • 打赏
  • 举报
回复
不是一个文件也不是所有的,只是一个句柄,这个句柄就访问镜像中的当前位置,他总的有一个标示表明你当前访问的是那个文件,下一个又是那个文件,这个handle就是干这个用的

64,646

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧