mirror of
https://github.com/IoTManagerProject/IoTManager.git
synced 2026-03-29 15:42:20 +03:00
update little fs lib to last version
This commit is contained in:
@@ -2,9 +2,10 @@
|
||||
#include "FS.h"
|
||||
#include <LITTLEFS.h>
|
||||
|
||||
/* You only need to format SPIFFS the first time you run a
|
||||
/* You only need to format LITTLEFS the first time you run a
|
||||
test or else use the LITTLEFS plugin to create a partition
|
||||
https://github.com/me-no-dev/arduino-esp32fs-plugin */
|
||||
https://github.com/lorol/arduino-esp32littlefs-plugin */
|
||||
|
||||
#define FORMAT_LITTLEFS_IF_FAILED true
|
||||
|
||||
void listDir(fs::FS &fs, const char * dirname, uint8_t levels){
|
||||
@@ -38,6 +39,24 @@ void listDir(fs::FS &fs, const char * dirname, uint8_t levels){
|
||||
}
|
||||
}
|
||||
|
||||
void createDir(fs::FS &fs, const char * path){
|
||||
Serial.printf("Creating Dir: %s\n", path);
|
||||
if(fs.mkdir(path)){
|
||||
Serial.println("Dir created");
|
||||
} else {
|
||||
Serial.println("mkdir failed");
|
||||
}
|
||||
}
|
||||
|
||||
void removeDir(fs::FS &fs, const char * path){
|
||||
Serial.printf("Removing Dir: %s\n", path);
|
||||
if(fs.rmdir(path)){
|
||||
Serial.println("Dir removed");
|
||||
} else {
|
||||
Serial.println("rmdir failed");
|
||||
}
|
||||
}
|
||||
|
||||
void readFile(fs::FS &fs, const char * path){
|
||||
Serial.printf("Reading file: %s\r\n", path);
|
||||
|
||||
@@ -104,6 +123,66 @@ void deleteFile(fs::FS &fs, const char * path){
|
||||
}
|
||||
}
|
||||
|
||||
// SPIFFS-like write and delete file
|
||||
|
||||
// See: https://github.com/esp8266/Arduino/blob/master/libraries/LittleFS/src/LittleFS.cpp#L60
|
||||
void writeFile2(fs::FS &fs, const char * path, const char * message){
|
||||
if(!fs.exists(path)){
|
||||
if (strchr(path, '/')) {
|
||||
Serial.printf("Create missing folders of: %s\r\n", path);
|
||||
char *pathStr = strdup(path);
|
||||
if (pathStr) {
|
||||
char *ptr = strchr(pathStr, '/');
|
||||
while (ptr) {
|
||||
*ptr = 0;
|
||||
fs.mkdir(pathStr);
|
||||
*ptr = '/';
|
||||
ptr = strchr(ptr+1, '/');
|
||||
}
|
||||
}
|
||||
free(pathStr);
|
||||
}
|
||||
}
|
||||
|
||||
Serial.printf("Writing file to: %s\r\n", path);
|
||||
File file = fs.open(path, FILE_WRITE);
|
||||
if(!file){
|
||||
Serial.println("- failed to open file for writing");
|
||||
return;
|
||||
}
|
||||
if(file.print(message)){
|
||||
Serial.println("- file written");
|
||||
} else {
|
||||
Serial.println("- write failed");
|
||||
}
|
||||
file.close();
|
||||
}
|
||||
|
||||
// See: https://github.com/esp8266/Arduino/blob/master/libraries/LittleFS/src/LittleFS.h#L149
|
||||
void deleteFile2(fs::FS &fs, const char * path){
|
||||
Serial.printf("Deleting file and empty folders on path: %s\r\n", path);
|
||||
|
||||
if(fs.remove(path)){
|
||||
Serial.println("- file deleted");
|
||||
} else {
|
||||
Serial.println("- delete failed");
|
||||
}
|
||||
|
||||
char *pathStr = strdup(path);
|
||||
if (pathStr) {
|
||||
char *ptr = strrchr(pathStr, '/');
|
||||
if (ptr) {
|
||||
Serial.printf("Removing all empty folders on path: %s\r\n", path);
|
||||
}
|
||||
while (ptr) {
|
||||
*ptr = 0;
|
||||
fs.rmdir(pathStr);
|
||||
ptr = strrchr(pathStr, '/');
|
||||
}
|
||||
free(pathStr);
|
||||
}
|
||||
}
|
||||
|
||||
void testFileIO(fs::FS &fs, const char * path){
|
||||
Serial.printf("Testing file I/O with %s\r\n", path);
|
||||
|
||||
@@ -164,8 +243,18 @@ void setup(){
|
||||
Serial.println("LITTLEFS Mount Failed");
|
||||
return;
|
||||
}
|
||||
Serial.println( "SPIFFS-like write file to new path and delete it w/folders" );
|
||||
writeFile2(LITTLEFS, "/new1/new2/new3/hello3.txt", "Hello3");
|
||||
listDir(LITTLEFS, "/", 3);
|
||||
deleteFile2(LITTLEFS, "/new1/new2/new3/hello3.txt");
|
||||
|
||||
listDir(LITTLEFS, "/", 0);
|
||||
listDir(LITTLEFS, "/", 3);
|
||||
createDir(LITTLEFS, "/mydir");
|
||||
writeFile(LITTLEFS, "/mydir/hello2.txt", "Hello2");
|
||||
listDir(LITTLEFS, "/", 1);
|
||||
deleteFile(LITTLEFS, "/mydir/hello2.txt");
|
||||
removeDir(LITTLEFS, "/mydir");
|
||||
listDir(LITTLEFS, "/", 1);
|
||||
writeFile(LITTLEFS, "/hello.txt", "Hello ");
|
||||
appendFile(LITTLEFS, "/hello.txt", "World!\r\n");
|
||||
readFile(LITTLEFS, "/hello.txt");
|
||||
@@ -174,6 +263,7 @@ void setup(){
|
||||
deleteFile(LITTLEFS, "/foo.txt");
|
||||
testFileIO(LITTLEFS, "/test.txt");
|
||||
deleteFile(LITTLEFS, "/test.txt");
|
||||
|
||||
Serial.println( "Test complete" );
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user