Модуль читает файлы с заданным типом, помещая их массив для дальнейшей работы с каталогом

C++
int get_music_list(fs::FS &fs, const char *dirname, uint8_t levels, String wavlist[30])
{
  Serial.printf("Listing directory: %s\n", dirname);
  int i = 0;

  File root = fs.open(dirname);
  if (!root)
  {
    Serial.println("Failed to open directory");
    return i;
  }
  if (!root.isDirectory())
  {
    Serial.println("Not a directory");
    return i;
  }

  File file = root.openNextFile();
  while (file)
  {
    if (file.isDirectory())
    {
    }
    else
    {
      String temp = file.name();
      if (temp.endsWith(".wav"))
      {
        wavlist[i] = String(dirname) + "/" + temp; // Добавляем в имена фалов полный путь каталога
        // wavlist[i] = temp; // Без добавления пути, только имя файла
        i++;
      }
      else if (temp.endsWith(".mp3"))
      {
        wavlist[i] = String(dirname) + "/" + temp;
        // wavlist[i] = temp;
        i++;
      }
    }
    file = root.openNextFile();
  }
  return i;
}