Bonjour à toutes et à tous,
J'ai écrit une fonction destinée à remplacer un ancien fichier par un nouveau. Cette fonction reconnaît le fichier à supprimer car il porte le même nom de jour, mais pas la même date.
Cette fonction marche pour certains jours (je ne les ai pas repérés) et d'autres pas. Par exemple, aujourd'hui le fichier à remplacer est /Fri-07-02-25.csv et le nouveau est /Fri-14-02-25.csv.
J'ai mis des Serial.print() un peu partout pour suivre ce qui se passe : à moment, le nom du fichier supprFch disparaît et donc n'est pas supprimé.
Je vous joins le code de cette fonction ainsi que le résultat obtenu dans le moniteur série.
const char * remplaceFchHisto() {
const char* supprFch;
strftime(nom_Fch, 24, "/%a-%d-%m-%y.csv", &timeinfo);
Serial.print("Demandé : "); Serial.println(nom_Fch);
File root = LittleFS.open("/");
File file = root.openNextFile();
bool vu = false;
while(file) {
if (strncmp(file.path(), nom_Fch, 4) == 0) {
Serial.print("Vu : "); Serial.println(file.path());
if (strncmp(file.path(), nom_Fch, 16) != 0) {
supprFch = file.path();
vu = true;
Serial.print("A supprimer : "); Serial.println(file.path());
Serial.print("A supprimer : "); Serial.println(supprFch);
}
}
if (vu == true) {
break;
}
else
file = root.openNextFile();
}
file.close();
Serial.print("Fichier à supprimer : "); Serial.println(supprFch);
if (LittleFS.exists(supprFch)) {
Serial.print("En attente de suppression : "); Serial.println(supprFch); // Le nom du fichier vient de disparaître !!
if (LittleFS.remove(supprFch)) { // Suppression de l'ancien fichier
Serial.print("Supprimé : "); Serial.println(supprFch);
} else
Serial.println("Pas supprimé !");
}
if (!LittleFS.exists(nom_Fch)) {
file = LittleFS.open(nom_Fch, FILE_WRITE); // Création du nouveau fichier
file.close();
Serial.print("Ajoute : "); Serial.println(nom_Fch);
}
return nom_Fch;
}
et le résultat :
10:53:38.040 -> Demandé : /Fri-14-02-25.csv
10:53:38.072 -> Vu : /Fri-07-02-25.csv
10:53:38.072 -> A supprimer : /Fri-07-02-25.csv
10:53:38.072 -> A supprimer : /Fri-07-02-25.csv
10:53:38.072 -> Fichier à supprimer : /Fri-07-02-25.csv
10:53:38.072 -> En attente de suppression :
10:53:38.104 -> Pas supprimé !
10:53:38.104 -> Listing directory: /
10:53:38.104 -> FILE: Fri-07-02-25.csv SIZE: 36635
10:53:38.104 -> FILE: Fri-14-02-25.csv SIZE: 2635
10:53:38.141 -> FILE: Mon-10-02-25.csv SIZE: 30501
10:53:38.141 -> FILE: Sat-08-02-25.csv SIZE: 37828
10:53:38.179 -> FILE: Sun-09-02-25.csv SIZE: 42827
10:53:38.179 -> FILE: Thu-13-02-25.csv SIZE: 10628
10:53:38.179 -> FILE: Tue-11-02-25.csv SIZE: 45514
10:53:38.179 -> FILE: Wed-12-02-25.csv SIZE: 44545
Si dans la ligne de suppression du fichier, je remplace la variable supprFch par /Fri-07-02-25.csv, la suppression à bien lieu.
Ça fonctionne pour certains jours et pas celui-là. Ça doit être énorme, mais je ne vois pas.
Cordialement.
Pierre.