FileEnumerator.h 779 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #pragma once
  2. #include "../Common.h"
  3. NS_BF_BEGIN;
  4. class FileEnumeratorEntry
  5. {
  6. public:
  7. String mDirPath;
  8. BfpFindFileData* mFindData;
  9. String GetFilePath() const;
  10. String GetFileName() const;
  11. };
  12. class FileEnumerator : public FileEnumeratorEntry
  13. {
  14. public:
  15. enum Flags
  16. {
  17. Flags_Files = 1,
  18. Flags_Directories = 2,
  19. };
  20. class Iterator
  21. {
  22. public:
  23. FileEnumerator* mFileEnumerator;
  24. int mIdx;
  25. const Iterator& operator++();
  26. bool operator==(const Iterator& rhs);
  27. bool operator!=(const Iterator& rhs);
  28. const FileEnumeratorEntry& operator*();
  29. };
  30. public:
  31. Flags mFlags;
  32. int mIdx;
  33. public:
  34. FileEnumerator(const String& fileName, Flags flags = Flags_Files);
  35. ~FileEnumerator();
  36. bool Next();
  37. Iterator begin();
  38. Iterator end();
  39. };
  40. NS_BF_END;