SD card size et rename

Bonjour !

Voila j'enregistre des infos sur une SD carte, plein plein d'info !
Alors j'aimerais que tous les 5000 octects (par exemple) je change le nom du fichier dans lequel j'enregistrais mes infos (genre datalogger1) ensuite j'ouvre un fichier (genre datalogger) j'écris mes infos et quand on atteint les 5000 octets je change le nom en datalogger2 etc etc .

J'ai déjà trouvé la fonction size http://www.mon-club-elec.fr/pmwiki_reference_arduino/pmwiki.php?n=Main.SDFilesize qui pourrait mettre utile.

Mais la fonction rename la par contre je ne trouve pas.. Et aussi j'utilise un watchdog, ça veut dire que si il y a un soucis, tout mon soft se reset (même les variables a l'intérieur) Donc je ne vois pas comment faire pour ne pas réécrire sur mon datalogger1

Et dernière contrainte, je suis sur la librairie de base pour l'écriture SD, est ce que vous pensez que je dois forcement passer en SDfat ? J'aimerais si possible éviter ^^

Merci d'avance :!! ! ! ! !

hello
tu as de la chance, j'ai fais qq recherches la dessus la semaine dernière puis faute de temps, j'ai soigneusement stocker plus ......plus tard

voici ce que j'ai trouvé
à toi de gérer pour ton utilisation :slight_smile:

#include <SPI.h>
#include <SD.h>
File root;
const int chipSelect = 4;
void setup() {
  // put your setup code here, to run once:
generateFiles();

Serial.begin(115200);
if (!SD.begin(4)) {
    Serial.println("initialization failed!");
    return;}

   else {
    Serial.println("Wiring is correct and a card is present.");
   // Serial.println("initialization done.");

  root = SD.open("/");

  //printDirectory(root, 0);

  Serial.println("done!");
    if (SD.exists("/test.txt/")) {Serial.println("test existe...");}
  }
generateFiles();
printDirectory(root, 0);
}

void loop() {
  // put your main code here, to run repeatedly:

}

void generateFiles() {

  String fileName = String();
  String message = String();
  unsigned int filenumber = 1;
  while(!filenumber==0) {
    fileName = "test";
    fileName += filenumber;
    fileName += ".txt";
    message = fileName;
    char charFileName[fileName.length() + 1];
    fileName.toCharArray(charFileName, sizeof(charFileName));

    if (SD.exists(charFileName)) { 
      message += " exists.";
      filenumber++;
    }
    else {
      File dataFile = SD.open(charFileName, FILE_WRITE);
      message += " created.";
      dataFile.close();
      filenumber = 0;
    }
    Serial.println(message);
  }
}


void printDirectory(File dir, int numTabs) {
   while(true) {
     
     File entry =  dir.openNextFile();
     if (! entry) {
       // no more files
       break;
     }
     for (uint8_t i=0; i<numTabs; i++) {
       Serial.print('\t');
     }
     Serial.print(entry.name());
     if (entry.isDirectory()) {
       Serial.println("/");
       printDirectory(entry, numTabs+1);
     } else {
       // files have sizes, directories do not
       Serial.print("\t\t");
       Serial.println(entry.size(), DEC);
     }
     entry.close();
   }
}

Ca fait exactement ce que je veux ! ! ! Je te remercie mille fois !