12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- #include "FileEnumerator.h"
- USING_NS_BF;
- String FileEnumeratorEntry::GetFilePath() const
- {
- char outName[4096];
- int outSize = 4096;
- BfpFindFileData_GetFileName(mFindData, outName, &outSize, NULL);
- return mDirPath + "/" + outName;
- }
- String FileEnumeratorEntry::GetFileName() const
- {
- char outName[4096];
- int outSize = 4096;
- BfpFindFileData_GetFileName(mFindData, outName, &outSize, NULL);
- return outName;
- }
- const FileEnumerator::Iterator& FileEnumerator::Iterator::operator++()
- {
- BF_ASSERT(mIdx == mFileEnumerator->mIdx);
- mFileEnumerator->Next();
- mIdx = mFileEnumerator->mIdx;
- return *this;
- }
- bool FileEnumerator::Iterator::operator==(const FileEnumerator::Iterator& rhs)
- {
- return
- (rhs.mFileEnumerator == mFileEnumerator) &&
- (rhs.mIdx == mIdx);
- }
- bool FileEnumerator::Iterator::operator!=(const FileEnumerator::Iterator& rhs)
- {
- return
- (rhs.mFileEnumerator != mFileEnumerator) ||
- (rhs.mIdx != mIdx);
- }
- const FileEnumerator::FileEnumeratorEntry& FileEnumerator::Iterator::operator*()
- {
- return *mFileEnumerator;
- }
- FileEnumerator::FileEnumerator(const String& dirPath, Flags flags)
- {
- mDirPath = dirPath;
- mFindData = BfpFindFileData_FindFirstFile((dirPath + "/*.*").c_str(), (BfpFindFileFlags)flags, NULL);
- mFlags = flags;
- if (mFindData != NULL)
- mIdx = 0;
- else
- mIdx = -1;
- }
- FileEnumerator::~FileEnumerator()
- {
- if (mFindData != NULL)
- BfpFindFileData_Release(mFindData);
- }
- bool FileEnumerator::Next()
- {
- if (BfpFindFileData_FindNextFile(mFindData))
- mIdx++;
- else
- mIdx = -1;
- return mIdx != -1;
- }
- FileEnumerator::Iterator FileEnumerator::begin()
- {
- Iterator itr;
- itr.mFileEnumerator = this;
- itr.mIdx = mIdx;
- return itr;
- }
- FileEnumerator::Iterator FileEnumerator::end()
- {
- Iterator itr;
- itr.mFileEnumerator = this;
- itr.mIdx = -1;
- return itr;
- }
|