• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

ESP32 LittleFS как получить данные о файловой системе

pvvx

Активный участник сообщества
Если не переразмечать флеш, а только записать новый скетч, то ФС будет вполне себе доступна, включая информацию о ней.
Но тут ничего не писали и неизвестна старая система. А форматировать не хотят :)
 
Это из штатного примера FSBrowser для esp8266
Не смог я его переделать, чтоб использовать без FSBrowser
Примеры LittleFS для ESP8266 и ESP32 "мягко говоря" ОЧЕНЬ сильно различаются...
Используйте пример для нужной платформы.
Вы оказались правы. Поменял плату и эти примеры заработали. Что очень странно, так как видел аналогичные в одном ролике, так там только меняли библиотеки типа для esp8266 подгружали SPIFFS, а для ESP32 подключали LittleFS, в остальном вроде как были идентичны.
Буду разбираться с примерами для каждой платы отдельно.
 

v258

New member
Ещё пока не пробовал размеры разделов оставлять прежними, но менять саму ФС. Но, по идее файлы сотруться.
Я, помнится, как-то скетч менял, файлы остались, но не открывались. А вот менял ли я в новом скетче тип ФС, не помню
 
Я, помнится, как-то скетч менял, файлы остались, но не открывались. А вот менял ли я в новом скетче тип ФС, не помню
Тут я уже говорил, что делал так. И даже отдельным новым скетчем создавал ручками новый файл, а потом записывал скетч с FSBrowser и все файлы, вместе с новым были на месте.
 
json = "{\"type\":\""; json += fsName;
Кстати, ещё раз перепроверил. Оказывается тут нет функции определения ФС. Тут это значение берется в самом начале из объявления переменной для ФС. А жаль. Надеялся, что есть какая-то функция для этого
 

v258

New member
Кстати, ещё раз перепроверил. Оказывается тут нет функции определения ФС. Тут это значение берется в самом начале из объявления переменной для ФС. А жаль. Надеялся, что есть какая-то функция для этого
Я сразу и сказал, что нужно знать, какая ФС
 
Что-то не получается у меня проверить является ли файл каталогом и зайти в него. В том плане, что функция в примере на оф странице (приводил выше) каталог не видит и воспринимает его как файл, причем пустой, хотя там файлы есть.
Попробовал переделать, но что-то не получается. Как вариант:
Код:
Dir dir1 = LittleFS.openDir("/");
while (dir1.next()) {
    Serial.print(dir1.fileName());
      if(dir1.fileName() isDirectory){  // по идее тут бы проверить, является ли имя/файл каталогом
        Serial.println(String(dir1.fileName())+" является каталогом");
      }
      else {
        File f = dir1.openFile("r");
        Serial.println(f.size());
      }
 
Эту проблему я решил так:
Код:
Dir dir1 = LittleFS.openDir("/");
while (dir1.next()) {
      if(dir1.isDirectory()){  // по идее тут бы проверить, является ли имя/файл каталогом
        Serial.println(String(dir1.fileName())+" является каталогом");
      }
      else {
        Serial.print(dir1.fileName());
        File f = dir1.openFile("r");
        Serial.println(f.size());
      }
  }
Теперь не могу понять, как пройтись по вложенным каталогам. По идее нужно что-то типа рекурсии.
 
Сверху Снизу