2011-08-20 11:11:05 +00:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include "Platform.h"
|
|
|
|
|
|
|
|
#include <string>
|
|
|
|
|
|
|
|
#ifdef PLATFORM_UNIX
|
|
|
|
#include <dirent.h>
|
|
|
|
#endif
|
|
|
|
|
2011-08-27 17:31:03 +00:00
|
|
|
/** Simple class for iterating over the files in a directory
|
|
|
|
* and reporting their names and types.
|
|
|
|
*/
|
2011-08-24 10:53:02 +00:00
|
|
|
class DirIterator
|
2011-08-20 11:11:05 +00:00
|
|
|
{
|
|
|
|
public:
|
2011-08-24 10:53:02 +00:00
|
|
|
DirIterator(const char* path);
|
|
|
|
~DirIterator();
|
2011-08-20 11:11:05 +00:00
|
|
|
|
|
|
|
// iterate to the next entry in the directory
|
|
|
|
bool next();
|
|
|
|
|
|
|
|
// methods to return information about
|
|
|
|
// the current entry
|
|
|
|
std::string fileName() const;
|
|
|
|
std::string filePath() const;
|
|
|
|
bool isDir() const;
|
|
|
|
|
|
|
|
private:
|
|
|
|
std::string m_path;
|
|
|
|
|
|
|
|
#ifdef PLATFORM_UNIX
|
|
|
|
DIR* m_dir;
|
|
|
|
dirent* m_entry;
|
|
|
|
#endif
|
2011-08-22 14:50:15 +00:00
|
|
|
|
|
|
|
#ifdef PLATFORM_WINDOWS
|
|
|
|
HANDLE m_findHandle;
|
|
|
|
WIN32_FIND_DATA m_findData;
|
|
|
|
bool m_firstEntry;
|
|
|
|
#endif
|
2011-08-20 11:11:05 +00:00
|
|
|
};
|
|
|
|
|