Bonjour,
J'utilise la fonction list Dir des exemples del'ESP32 sous arduino 1.8.19 (windows 10) core 2.0.1, mais à l'affichage la taille des fichiers sont en octets.
Si je divise par 1024 la taille du fichier j'obtiens 0 pour tous les fichiers ayant une taille inférieur à 1024.
Je suppose qu'il faut un printf avec un float et 3 chiffres après la virgule.
par exemple sous dos en faisant un dir j'ai 2 400, équivalent 2KB 400, j'ai aimerais avoir cela.
Le code:
void listDir(fs::FS &fs, const char * dirname, uint8_t levels) {
Terminal.printf("Listing directory: %s\r\n", dirname);
File root = fs.open(dirname);
if (!root) {
Terminal.write("Failed to open directory\r\n");
return;
}
if (!root.isDirectory()) {
Terminal.write("Not a directory\r\n");
return;
}
File file = root.openNextFile();
while (file) {
if (file.isDirectory()) {
Terminal.write(" DIR : \e[93m");
Terminal.write(file.name());
Terminal.write("\e[92m\r\n");
if (levels) {
listDir(fs, file.name(), levels - 1);
}
} else {
Terminal.print(" FILE: ");
Terminal.print(file.name());
Terminal.print("\tSIZE: \e[97m");
Terminal.print(file.size()); <====== ici la taille à modifier
Terminal.write("\e[92m\r\n");
}
file = root.openNextFile();
}
Terminal.printf("\r\nTotal space: %lluMB\r\n", SD.totalBytes() / (1024 * 1024));
Terminal.printf("Used space: %lluMB\r\n", SD.usedBytes() / (1024 * 1024));
error = false;
state = State::Prompt;
}
Merci de votre aide.