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 true
- const 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(){
- }
|