Problemas para borrar sd

Estoy trabajando en un datalogger y necesito borrar los datos de la Micro SD segun cierta hora del RTC, he probado con sd.remove pero no me funciona.

Comienza leyendo las normas del foro y editando tu post.
No se puede escribir con mayúsculas porque es como si nos gritaras.
Tampoco el título asi que edita todo.
No podras borrar el hilo de modo que a editarlo.

1 Like

listo no había leído bien las normas del foro. Gracias

Ya leí que dices que SD.remove no funciona pero mira este ejemplo y prueba a veri si trabaja bien o no
Una consulta previo a una sugerencia.
Tu estás cerrando los archivos antes de llamar a SD.remove()?
haces esto

myFile.close();
SD.remove(filenameCA);

Este es un programa que borra todo, carpetas y archivos, dejando la SD libre.

#include <SD.h>

const int SDChipSelect = 4; // SS pin on the SD card.
// Other pins connected to normal SPI

File root;
int DeletedCount = 0;
int FolderDeleteCount = 0;
int FailCount = 0;
String rootpath = "/";

void setup()
{
  Serial.begin(9600);
  pinMode(10, OUTPUT);

  SD.begin(SDChipSelect);

  root = SD.open("/");
  delay(2000);

  rm(root, rootpath);

  if( !DeletedCount && !FailCount && !FolderDeleteCount ){

  } 
  else{
    Serial.print("Deleted ");
    Serial.print(DeletedCount);
    Serial.print(" file");
    if( DeletedCount != 1 ){
      Serial.print("s");
    }
    Serial.print(" and ");
    Serial.print(FolderDeleteCount);
    Serial.print(" folder");
    if ( FolderDeleteCount != 1 ){
      Serial.print("s");
    }
    Serial.println(" from SD card.");
    if( FailCount > 0 ){
      Serial.print("Failed to delete ");
      Serial.print(FailCount);
      Serial.print(" item");
      if( FailCount != 1 ){
        Serial.print("s");
      }
    }
  }
}

void loop()
{
  while(1){
    // nada
  }
}

void rm(File dir, String tempPath) {
  while(true) {
    File entry =  dir.openNextFile();
    String localPath;

    Serial.println("");
    if (entry) {
      if ( entry.isDirectory() )
      {
        localPath = tempPath + entry.name() + rootpath + '\0';
        char folderBuf[localPath.length()];
        localPath.toCharArray(folderBuf, localPath.length() );
        rm(entry, folderBuf);


        if( SD.rmdir( folderBuf ) )
        {
          Serial.print("Deleted folder ");
          Serial.println(folderBuf);
          FolderDeleteCount++;
        } 
        else
        {
          Serial.print("Unable to delete folder ");
          Serial.println(folderBuf);
          FailCount++;
        }
      } 
      else
      {
        localPath = tempPath + entry.name() + '\0';
        char charBuf[localPath.length()];
        localPath.toCharArray(charBuf, localPath.length() );

        if( SD.remove( charBuf ) )
        {
          Serial.print("Deleted ");
          Serial.println(localPath);
          DeletedCount++;
        } 
        else
        {
          Serial.print("Failed to delete ");
          Serial.println(localPath);
          FailCount++;
        }

      }
    } 
    else {
      // break out of recursion
      break;
    }
  }
}

debería en teoría borrar carpetas y archivos encontrados en una SD.