Как удалить файл с SD-карты с помощью SdFat - PullRequest
1 голос
/ 23 сентября 2019

Я пытаюсь удалить самый старый файл с SD-карты с помощью SdFat, но безуспешно

Я нашел эту функцию на форумах Arduino Здесь

void deleteOldestFile(){
  SdFile dirFile;
  SdFile file;
  SdFile oldestFile;

  dir_t dir;
  uint32_t oldestModified = 0xFFFFFFFF;
  uint32_t lastModified;

  if (!dirFile.open("/", O_READ)) {
    sd.errorHalt("open root failed");
  }

  while (file.openNext(&dirFile, O_WRITE)) {
    // Skip directories and hidden files.
    if (!file.isSubDir() && !file.isHidden()) {
      file.dirEntry(&dir);
      lastModified = (uint16_t (dir.lastWriteDate) << 16 | dir.lastWriteTime);
      if (lastModified < oldestModified ) {
        oldestModified = lastModified;
        oldestFile = file;
      }
    }
    file.close();
  }
  if(!oldestFile.remove()) Serial.println("failed");
  dirFile.close();
}

но я получаю сообщение "сбой", когда эта функция запускает какие-либо идеи, почему и как решить эту проблему?

РЕДАКТИРОВАТЬ: я могу использовать удалить как это:

  char delChar[13] = {0};
...
  Serial.print("oldest: ");
  oldestFile.printName();
  oldestFile.getName(delChar,13);

  Serial.println();
  Serial.print("delchar: ");
  Serial.println(delChar);
  if(!sd.remove(delChar)) Serial.println("fail");
  dirFile.close();

но file.remove() все еще не работает

...