#include <Arduino.h>
#include <vector>
#include <SD.h>
#define CS_PIN 5
using Filenames = std::vector<String>;
Filenames getFilenames(const char * path) {
Filenames filenames;
File root = SD.open("/");
if (!root) return filenames;
File entry;
while (entry = root.openNextFile()) {
if (entry.isDirectory()) {
entry.close();
continue;
}
filenames.push_back(String(path) + entry.name());
entry.close();
}
root.close();
return filenames;
}
void setupSDCard() {
Serial.print("Initializing SD card... ");
if (!SD.begin(CS_PIN)) {
Serial.println("Card initialization failed!");
while (true);
}
Serial.println("done");
}
void listFilenames() {
Filenames filenames = getFilenames("/");
Serial.print(filenames.size());
Serial.println(" file(s) found:");
for (size_t i = 0; i < filenames.size(); i++)
Serial.println(filenames[i]);
// alternatively:
// for (auto filename : filenames) Serial.println(filename);
}
void setup() {
Serial.begin(115200);
setupSDCard();
listFilenames();
}
void loop() {
delay(100); // wokwi delay
}