我正在尝试使用 SdFat 从 sd 卡中删除最旧的文件,但没有成功
我在 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()
仍然无法正常工作