| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219 | #include "FS.h"//#include "SPIFFS.h" #include "LITTLEFS.h"#include <time.h> #include <WiFi.h>#define SPIFFS LITTLEFS/* This examples uses "quick re-define" of SPIFFS to run    an existing sketch with LITTLEFS instead of SPIFFS      To get time/date stamps by file.getLastWrite(), you need an    esp32 core on IDF 3.3 and comment a line in file esp_littlefs.c:      //#define CONFIG_LITTLEFS_FOR_IDF_3_2   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/lorol/arduino-esp32littlefs-plugin */   #define FORMAT_LITTLEFS_IF_FAILED trueconst char* ssid     = "yourssid";const char* password = "yourpass";long timezone = 1; byte daysavetime = 1;void listDir(fs::FS &fs, const char * dirname, uint8_t levels){    Serial.printf("Listing directory: %s\n", dirname);    File root = fs.open(dirname);    if(!root){        Serial.println("Failed to open directory");        return;    }    if(!root.isDirectory()){        Serial.println("Not a directory");        return;    }    File file = root.openNextFile();    while(file){        if(file.isDirectory()){            Serial.print("  DIR : ");            Serial.print (file.name());            time_t t= file.getLastWrite();            struct tm * tmstruct = localtime(&t);            Serial.printf("  LAST WRITE: %d-%02d-%02d %02d:%02d:%02d\n",(tmstruct->tm_year)+1900,( tmstruct->tm_mon)+1, tmstruct->tm_mday,tmstruct->tm_hour , tmstruct->tm_min, tmstruct->tm_sec);            if(levels){                listDir(fs, file.name(), levels -1);            }        } else {            Serial.print("  FILE: ");            Serial.print(file.name());            Serial.print("  SIZE: ");            Serial.print(file.size());            time_t t= file.getLastWrite();            struct tm * tmstruct = localtime(&t);            Serial.printf("  LAST WRITE: %d-%02d-%02d %02d:%02d:%02d\n",(tmstruct->tm_year)+1900,( tmstruct->tm_mon)+1, tmstruct->tm_mday,tmstruct->tm_hour , tmstruct->tm_min, tmstruct->tm_sec);        }        file = root.openNextFile();    }}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\n", path);    File file = fs.open(path);    if(!file){        Serial.println("Failed to open file for reading");        return;    }    Serial.print("Read from file: ");    while(file.available()){        Serial.write(file.read());    }    file.close();}void writeFile(fs::FS &fs, const char * path, const char * message){    Serial.printf("Writing file: %s\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();}void appendFile(fs::FS &fs, const char * path, const char * message){    Serial.printf("Appending to file: %s\n", path);    File file = fs.open(path, FILE_APPEND);    if(!file){        Serial.println("Failed to open file for appending");        return;    }    if(file.print(message)){        Serial.println("Message appended");    } else {        Serial.println("Append failed");    }    file.close();}void renameFile(fs::FS &fs, const char * path1, const char * path2){    Serial.printf("Renaming file %s to %s\n", path1, path2);    if (fs.rename(path1, path2)) {        Serial.println("File renamed");    } else {        Serial.println("Rename failed");    }}void deleteFile(fs::FS &fs, const char * path){    Serial.printf("Deleting file: %s\n", path);    if(fs.remove(path)){        Serial.println("File deleted");    } else {        Serial.println("Delete failed");    }}void setup(){    Serial.begin(115200);    // We start by connecting to a WiFi network    Serial.println();    Serial.println();    Serial.print("Connecting to ");    Serial.println(ssid);    WiFi.begin(ssid, password);    while (WiFi.status() != WL_CONNECTED) {        delay(500);        Serial.print(".");    }    Serial.println("WiFi connected");    Serial.println("IP address: ");    Serial.println(WiFi.localIP());    Serial.println("Contacting Time Server");	configTime(3600*timezone, daysavetime*3600, "time.nist.gov", "0.pool.ntp.org", "1.pool.ntp.org");	struct tm tmstruct ;    delay(2000);    tmstruct.tm_year = 0;    getLocalTime(&tmstruct, 5000);	Serial.printf("\nNow is : %d-%02d-%02d %02d:%02d:%02d\n",(tmstruct.tm_year)+1900,( tmstruct.tm_mon)+1, tmstruct.tm_mday,tmstruct.tm_hour , tmstruct.tm_min, tmstruct.tm_sec);    Serial.println("");        if(!SPIFFS.begin(FORMAT_LITTLEFS_IF_FAILED)){        Serial.println("LITTLEFS Mount Failed");        return;    }    Serial.println("----list 1----");    listDir(SPIFFS, "/", 1);	    Serial.println("----remove old dir----");    removeDir(SPIFFS, "/mydir");	    Serial.println("----create a new dir----");    createDir(SPIFFS, "/mydir");	    Serial.println("----remove the new dir----");    removeDir(SPIFFS, "/mydir");	    Serial.println("----create the new again----");    createDir(SPIFFS, "/mydir");	    Serial.println("----create and work with file----");    writeFile(SPIFFS, "/mydir/hello.txt", "Hello ");    appendFile(SPIFFS, "/mydir/hello.txt", "World!\n");    Serial.println("----list 2----");    listDir(SPIFFS, "/", 1);	    Serial.println("----attempt to remove dir w/ file----");    removeDir(SPIFFS, "/mydir");	    Serial.println("----remove dir after deleting file----");    deleteFile(SPIFFS, "/mydir/hello.txt");    removeDir(SPIFFS, "/mydir");		Serial.println("----list 3----");    listDir(SPIFFS, "/", 1);		Serial.println( "Test complete" );}void loop(){}
 |