在一个文件夹下有多个日志文件,格式相同.怎么连续读取所有文件.我写了一段程序,可是老出问题,烦请高手帮忙看看.....
struct _finddata_t findData;

long hFile;hFile = _findfirst("event*.log", &findData);while (hFile != -1L)
{
hFile = (long)_findnext(hFile, &findData); cout << findData.name << " 文件已读取.." << endl;
....

}
_findclose(hFile);
...

在运行时,Event.log 文件不能读,其他文件(如event001.log)则能读,但最后一个文件读两次,请问这是怎么回事?

解决方案 »

  1.   

    _findclose(hFile);放在你每次读完一个文件之后,不要放在循环外面
      

  2.   

    不好意思,说错了,用do while代替你的while循环
    hFile = _findfirst("event*.log", &findData);
    if (hFile!=-1L)
    do
    {
    cout << findData.name << " 文件已读取.." << endl;
    ....
    hFile = (long)_findnext(hFile, &findData);
    }while (hFile != -1L);
    _findclose(hFile);
      

  3.   

    建议把event*.log
    改为even*.log
      

  4.   

    改为even*意思就变了,even1这种也会被匹配,其实主要是要单独考虑文件名为event的情况