diff --git a/wled00/file.cpp b/wled00/file.cpp index ba406ba3b5..ee107c6664 100644 --- a/wled00/file.cpp +++ b/wled00/file.cpp @@ -38,7 +38,7 @@ void closeFile() { DEBUGFS_PRINT(F("Close -> ")); uint32_t s = millis(); #endif - f.close(); + f.close(); // "if (f)" check is aleady done inside f.close(), and f cannot be nullptr -> no need for double checking before closing the file handle. DEBUGFS_PRINTF("took %lu ms\n", millis() - s); doCloseFile = false; } @@ -271,6 +271,8 @@ bool writeObjectToFile(const char* file, const char* key, const JsonDocument* co s = millis(); #endif + if (doCloseFile) closeFile(); // This prevents the loss of file data that is still cached in the File object. + size_t pos = 0; char fileName[129]; strncpy_P(fileName, file, 128); fileName[128] = 0; //use PROGMEM safe copy as FS.open() does not f = WLED_FS.open(fileName, WLED_FS.exists(fileName) ? "r+" : "w+");