93 lines
2.5 KiB
C++
93 lines
2.5 KiB
C++
|
|
// Call up the SPIFFS FLASH filing system
|
|
#define FS_NO_GLOBALS
|
|
#include <FS.h>
|
|
|
|
#ifdef ESP32
|
|
#include "SPIFFS.h"
|
|
#endif
|
|
|
|
/*====================================================================================
|
|
This sketch supports the ESP6266 and ESP32 SPIFFS filing system
|
|
|
|
Created by Bodmer 15th Jan 2017
|
|
==================================================================================*/
|
|
|
|
//====================================================================================
|
|
// Print a SPIFFS directory list (root directory)
|
|
//====================================================================================
|
|
|
|
void listFiles(void) {
|
|
Serial.println();
|
|
Serial.println("SPIFFS files found:");
|
|
|
|
#ifdef ESP32
|
|
listDir(SPIFFS, "/", true);
|
|
#else
|
|
fs::Dir dir = SPIFFS.openDir("/"); // Root directory
|
|
String line = "=====================================";
|
|
|
|
Serial.println(line);
|
|
Serial.println(" File name Size");
|
|
Serial.println(line);
|
|
|
|
while (dir.next()) {
|
|
String fileName = dir.fileName();
|
|
Serial.print(fileName);
|
|
int spaces = 25 - fileName.length(); // Tabulate nicely
|
|
if (spaces < 0) spaces = 1;
|
|
while (spaces--) Serial.print(" ");
|
|
fs::File f = dir.openFile("r");
|
|
Serial.print(f.size()); Serial.println(" bytes");
|
|
yield();
|
|
}
|
|
|
|
Serial.println(line);
|
|
#endif
|
|
Serial.println();
|
|
delay(1000);
|
|
}
|
|
//====================================================================================
|
|
|
|
#ifdef ESP32
|
|
void listDir(fs::FS &fs, const char * dirname, uint8_t levels) {
|
|
Serial.printf("Listing directory: %s\n", dirname);
|
|
|
|
fs::File root = fs.open(dirname);
|
|
if (!root) {
|
|
Serial.println("Failed to open directory");
|
|
return;
|
|
}
|
|
if (!root.isDirectory()) {
|
|
Serial.println("Not a directory");
|
|
return;
|
|
}
|
|
|
|
fs::File file = root.openNextFile();
|
|
while (file) {
|
|
|
|
if (file.isDirectory()) {
|
|
Serial.print("DIR : ");
|
|
String fileName = file.name();
|
|
Serial.print(fileName);
|
|
if (levels) {
|
|
listDir(fs, file.name(), levels - 1);
|
|
}
|
|
} else {
|
|
String fileName = file.name();
|
|
Serial.print(" " + fileName);
|
|
int spaces = 32 - fileName.length(); // Tabulate nicely
|
|
if (spaces < 1) spaces = 1;
|
|
while (spaces--) Serial.print(" ");
|
|
String fileSize = (String) file.size();
|
|
spaces = 8 - fileSize.length(); // Tabulate nicely
|
|
if (spaces < 1) spaces = 1;
|
|
while (spaces--) Serial.print(" ");
|
|
Serial.println(fileSize + " bytes");
|
|
}
|
|
|
|
file = root.openNextFile();
|
|
}
|
|
}
|
|
#endif
|