I want to count the number of files from a directory and all its subdirectories recursively. My code is:

Qt Code:
  1. int DocumentsManager::CountFiles(QString path)
  2. {
  3. int sum = 0;
  4. QDir dir(path);
  5. dir.setFilter(QDir::AllDirs | QDir::NoDotAndDotDot);
  6. QFileInfoList lst = dir.entryInfoList();
  7. for(int i = 0; i < lst.size(); i++)
  8. {
  9. sum = sum + CountFiles(lst.at(i).canonicalPath());
  10. }
  11. dir.setFilter(QDir::Files);
  12. return dir.entryInfoList().size() + sum;
  13. }
To copy to clipboard, switch view to plain text mode 

The problem is that sometimes I got the following error:
ASSERT: i>=0 && i < size()

Do you have any idea why? Thank you.