Por defecto, SPIFFS viene instalada con ESP32. Podemos incluir la librería en nuestro código con la siguiente línea:
#include "SPIFFS.h"
Para usar SPIFFS, primero debemos inicializar el sistema de archivos en la memoria flash del ESP32. Si ocurre un error durante el proceso de montaje, el ESP32 lo indicará en el monitor serie.
if (!SPIFFS.begin(true)) {
Serial.println("Ocurrió un error mientras se montaba SPIFFS");
return;
}
El argumento true
en SPIFFS.begin(true)
indica que se debe formatear el sistema de archivos si no está formateado.
Para crear y escribir en un archivo, utilizamos la función open()
para abrir el archivo en modo escritura (FILE_WRITE
). Una vez abierto, podemos escribir en el archivo utilizando print()
.
void writeFile() {
File file = SPIFFS.open("/nuevoArchivo.txt", FILE_WRITE);
if (!file) {
Serial.println("Error al abrir el fichero para escribir");
return;
}
if (file.print("TEST")) {
Serial.println("Fichero creado correctamente");
} else {
Serial.println("Falló la creación del fichero");
}
file.close();
}
En este ejemplo, creamos un archivo llamado nuevoArchivo.txt
y escribimos el texto "TEST" en él.
Para leer un archivo, primero lo abrimos en modo lectura (FILE_READ
). Podemos comprobar si el archivo se ha abierto correctamente antes de proceder a leer su contenido.
File file = SPIFFS.open("/archivo.txt", FILE_READ);
if (!file) {
Serial.println("Error al abrir el fichero para leer");
return;
}
while (file.available()) {
Serial.write(file.read());
}
file.close();
Este ejemplo lee y muestra el contenido de archivo.txt
en el monitor serie, carácter por carácter.
Si necesitamos eliminar un archivo de SPIFFS, utilizamos la función SPIFFS.remove(NAME)
. Para eliminar todos los archivos del sistema de archivos, podemos hacer lo siguiente:
void delAllFiles() {
File root = SPIFFS.open("/");
File file = root.openNextFile();
while (file) {
Serial.print("FILE: ");
Serial.println(file.name());
SPIFFS.remove(file.name());
file = root.openNextFile();
}
}
Este código recorre todos los archivos en el sistema de archivos y los elimina.
Para verificar si un archivo existe en SPIFFS, utilizamos la función SPIFFS.exists("/archivo.txt")
. Esto es útil para asegurarse de que un archivo esté presente antes de intentar leerlo o modificarlo.
void fileExists() {
if (SPIFFS.exists("/archivo.txt")) {
Serial.println("El archivo existe");
} else {
Serial.println("El archivo NO existe");
}
}
En este ejemplo, verificamos si el archivo archivo.txt
existe y mostramos el resultado en el monitor serie.