renderbug-cpp/src/FsUtils.cpp

58 lines
1.0 KiB
C++

#include "FsUtils.h"
filename_iterator::filename_iterator()
: suffix(NULL),
valid(false)
{}
filename_iterator::filename_iterator(const char* path, const char* suffix)
#ifdef ESP8266
: dir(LittleFS.openDir(path)),
#endif
#ifdef ESP32
: dir(LittleFS.open(path)),
#endif
valid(true),
suffix(suffix)
{
next();
}
void
filename_iterator::next()
{
if (!valid) {
return;
}
int extPos = -1;
do {
#ifdef ESP8266
valid = dir.next();
if (valid) {
String fname = dir.fileName();
extPos = fname.lastIndexOf(suffix);
if (extPos != -1) {
ret = fname.substring(0, extPos);
}
}
#endif
#ifdef ESP32
File next = dir.openNextFile();
valid = (bool)next;
if (valid && !next.isDirectory()) {
String fname = next.name();
extPos = fname.lastIndexOf(suffix);
if (extPos != -1) {
ret = fname.substring(0, extPos);
}
}
#endif
} while (valid && extPos == -1);
}
filename_iterator& filename_iterator::operator++()
{
next();
return *this;
}