Example #1
0
bool OSDir::getNextFile(OSFile &oFile, const char* fileMask, bool bRecursive)
{
#ifdef _WIN32
  std::string realMask = "*.*";  //FIXME -- could this also be just '*' ?
#else
  std::string realMask = "*";
#endif
  if (fileMask)
    realMask = fileMask;

  realMask = TextUtils::toupper(realMask);

  std::string theFileExt;
  if (info->namePos == -1)
  {
    info->nameList.clear();
  //FIXME -- just do the #ifdef'ing here?
    windowsAddFileStack(getFullOSPath(), realMask, bRecursive);
    linuxAddFileStack(getFullOSPath(), realMask, bRecursive);

    info->namePos = 0;
  }

  int size = info->nameList.size();
  if (info->namePos >= size)
  {
    info->namePos = -1;
    return false;
  }

  std::string fileName = info->nameList[info->namePos];

  if (osBaseDir.size()>1)
  {
    std::string temp = &(fileName.c_str()[osBaseDir.size()]);
    fileName = temp;
  }

  oFile.osName(fileName);
  info->namePos++;

  return true;
}