CoreUtils/.history/Directory_20220910202532.h
2023-10-06 18:32:17 +00:00

58 lines
1023 B
C++

#ifndef __Directory_h__
#define __Directory_h__
#include "DirectoryEntry.h"
#include "Log.h"
#include "includes"
namespace coreutils
{
class Directory
{
public:
Directory(std::string path)
{
dir = opendir(path.c_str());
if (dir)
{
struct dirent *entry = readdir(dir);
while (entry)
{
directory.emplace(std::string(entry->d_name), entry);
entry = readdir(dir);
}
}
if (directory.size() > 0)
cursor = directory.begin();
}
~Directory() {}
bool eod()
{
return cursor == directory.end();
}
DirectoryEntry get()
{
if (eod())
return NULL;
return cursor->second;
}
void next()
{
++cursor;
}
private:
DIR *dir;
std::map<std::string, DirectoryEntry> directory;
std::map<std::string, DirectoryEntry>::iterator cursor;
};
}
#endif