Hallo,
ich arbeite immer noch mit dem IDE LittleFS_time Bsp. Sketch. Die Zeit wird als Erstes aus dem Internet geholt. Zeigt mit Now is: korrekt an.
Danach kommt eine Formatierung und dann werden immer alle Verzeichnisse erstellt. Nur eben mit falschen Datum.
Das ESP8266 Bsp. lässt sich nicht kompilieren. Die Lib Namen habe ich natürlich angepasst.
Ausgabe vom unteren Sketch.
Kann es sein das das Datum beim Verzeichnis erstellen immer 1970 ist und erst nach Änderungen darin (Datei schreiben) auf das richtige Datum aktualisiert wird?
@agmue : okay
Now is : 2024-04-18 19:29:51
----create and work with file----
Writing file: /mydir/hello.txt
File written
Appending to file: /mydir/hello.txt
Message appended
----list 3----
Listing directory: /
DIR : mydir LAST WRITE: 1970-01-01 00:59:59
Listing directory: /mydir
FILE: hello.txt SIZE: 13 LAST WRITE: 2024-04-18 19:29:51
DIR : newDir LAST WRITE: 1970-01-01 00:59:59
Listing directory: /newDir
DIR : newOrder LAST WRITE: 1970-01-01 00:59:59
Listing directory: /newOrder
Test complete
#include "FS.h"
//#include "SPIFFS.h"
#include "LittleFS.h"
#include <time.h>
#include <WiFi.h>
constexpr bool FORMAT_LITTLEFS_IF_FAILED {false};
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.path(), 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);
pinMode(LED_BUILTIN, OUTPUT); // OnBoardLed ESP32 Dev Module
// We start by connecting to a WiFi network
Serial.println();
connect();
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 (!LittleFS.begin(FORMAT_LITTLEFS_IF_FAILED)) {
Serial.println("LittleFS Mount Failed");
return;
}
/*
Serial.println("Formatierung");
LittleFS.format();
Serial.println("----list 1----");
listDir(LittleFS, "/", 1);
Serial.println("----create a new dir----");
createDir(LittleFS, "/mydir");
createDir(LittleFS, "/newOrder");
createDir(LittleFS, "/newDir");
Serial.println("----list 2----");
listDir(LittleFS, "/", 1);
*/
Serial.println("----create and work with file----");
writeFile(LittleFS, "/mydir/hello.txt", "Hello ");
appendFile(LittleFS, "/mydir/hello.txt", "World!\n");
Serial.println("----list 3----");
listDir(LittleFS, "/", 1);
LittleFS.end();
Serial.println("Test complete");
}
void loop() {
}