ESP32 Arduino. Удалить все файлы. Форматирование SPIFFS.

Разработка проектов под заказ

При создании различных проектов на ESP32 для хранения файлов используем файловую систему SPIFFS. А если файлы и папки созданы программой в SPIFFS, то, что там хранится, посмотреть не получится. Также бывают случаи, с которыми я столкнулся на днях при создании ЧПУ станка на ESP32. Прошивка ESP32_GRBL создает файл конфигурации, который не переписывается при переустановке GRBL. Я без проблем могу найти данный файл и удалить его по имени, но как же быть новичку. Сегодня в уроке рассмотрим, как можно отформатировать SPIFFS используя всего одну команду.

Для данного урока у вас должны быть заранее созданные файлы в файловой системе. В этом нам поможет пример SPIFFS_Test. Который располагается «Примеры -> SPIFFS -> SPIFFS_Test».

созданные файлы в файловой системе. В этом нам поможет пример SPIFFS_Test.

Данный пример нужно немного изменить: закомментируем строки, которые удаляют файлы после их создания. И получим вот такой код.

Данный пример нужно немного изменить: закомментируем строки, которые удаляют файлы

Загрузим пример в ESP32. Как настроить работу ESP32 в среде Arduino IDE читайте тут: Установка, прошивка платы ESP32 в Arduino IDE (Windows, Mac OS X, Linux).

Откроем монитор порта и увидим, что у нас также хранятся файлы от прошивки GRBL:

FILE: /favicon.icoSIZE: 1150  
FILE: /index.html.gzSIZE: 128570

также создались 2 файла: foo.txt, hello.txt

Загрузим пример в ESP32. Как настроить работу ESP32 в среде Arduino IDE

Код удаления всех файлов из файловой системы SPIFFS ESP32.

Начнем с подключения библиотеки SPIFFS.h, чтобы у нас был доступ к управлению файловой системой SPIFFS.

#include "SPIFFS.h"

Затем объявим функцию с именем listAllFiles, которая выведет список всех файлов файловой системы SPIFFS. В этой функции откроем корневой каталог « / », а затем будем перебирать все файлы, вызывая метод openNextFile. При обнаружении файла будем выводить в монитор порта имя текущего файла.

void listAllFiles(){
  File root = SPIFFS.open("/");
  File file = root.openNextFile();
  while(file){
      Serial.print("FILE: ");
      Serial.println(file.name());
      file = root.openNextFile();
  }
}

В основной функции setup() установим подключение к последовательному порту.

Serial.begin(115200);

Затем подключим файловую систему SPIFFS, чтобы мы могли ее использовать.

if (!SPIFFS.begin(true)) {
    Serial.println("An Error has occurred while mounting SPIFFS");
    return;
}

После этого перечислим все файлы в файловой системе SPIFFS, прежде чем форматировать их.

Serial.println("\n\n----Listing files before format----");
listAllFiles();

Сейчас будем форматировать файловую систему, вызвав функцию SPIFFS.format(). Этот метод не принимает аргументов и возвращает в качестве вывода логическое значение, указывающее, была ли процедура успешной (true) или неудачной (false). Мы сохраним возвращенное значение для проверки ошибок.

bool formatted = SPIFFS.format();

Затем выполним проверку на ошибки в возвращенном значении, чтобы убедиться, что процедура прошла успешно. После чего выведем сообщение в монитор порта – успешно прошло форматирование или нет.

if(formatted){
    Serial.println("\n\nSuccess formatting");
}else{
    Serial.println("\n\nError formatting");
}

И напоследок снова выведем в монитор порта список файлов в файловой системе SPIFFS, чтобы убедиться, что они действительно были удалены. Второй вызов должен выдать пустой список.

Serial.println("\n\n----Listing files after format----");
listAllFiles();

В итоге получим вот такой код удаления всех файлов из файловой системы SPIFFS на плате ESP32.

#include "SPIFFS.h"
 
void listAllFiles(){
 
  File root = SPIFFS.open("/");
 
  File file = root.openNextFile();
 
  while(file){
 
      Serial.print("FILE: ");
      Serial.println(file.name());
 
      file = root.openNextFile();
  }
 
}
 
void setup() {
 
  Serial.begin(115200);
 
  if (!SPIFFS.begin(true)) {
    Serial.println("An Error has occurred while mounting SPIFFS");
    return;
  }
 
  Serial.println("\n\n----Listing files before format----");
  listAllFiles();
 
  bool formatted = SPIFFS.format();
 
  if(formatted){
    Serial.println("\n\nSuccess formatting");
  }else{
    Serial.println("\n\nError formatting");
  }
 
  Serial.println("\n\n----Listing files after format----");
  listAllFiles();
}
 
void loop() {}

Проверка форматирования файловой системы SPIFFS на плате ESP32.

Чтобы проверить код, сначала откройте последовательный монитор Arduino IDE, чтобы убедиться, что не пропустили вывод программы. Затем скомпилируйте код и загрузите его в ESP32, предполагая, что у нас ранее были созданы файлы в файловой системе SPIFFS.

созданы файлы в файловой системе SPIFFS

В итоге должны получить результат, аналогичный показанному на рисунке ниже. Как видно, перед процедурой форматирования все файлы перечислены. После форматирования, ранее существовавшие файлы стираются, и поэтому ничего не выводится в монитор порта.

Проверка форматирования файловой системы SPIFFS на плате ESP32.

Обратите внимание, что процедура форматирования может занять некоторое время, поэтому вам придется подождать некоторое время, пока не будет выведен пустой список.

Вот такой простой способ поможет отформатировать файловую систему ESP32.

Понравился Урок ESP32 Arduino. Удалить все файлы. Форматирование SPIFFS? Не забудь поделиться с друзьями в соц. сетях.

А также подписаться на наш канал на YouTube, вступить в группу Вконтакте, в группу на Facebook.

Спасибо за внимание!

Технологии начинаются с простого!

Фотографии к статье

Файлы для скачивания

пример SPIFFS_Test пример SPIFFS_Test.ino5 Kb 19 Скачать
Код удаления всех файлов из файловой системы SPIFFS ESP32 Код удаления всех файлов из файловой системы SPIFFS ESP32.ino1 Kb 15 Скачать

Комментарии

Ваше Имя*