Возврат в родительский каталог с библиотекой SD

У меня есть переменная File под названием dir, и я создаю простой файловый менеджер для своего устройства. Есть ли способ получить ссылку на родительский каталог dir?

, 👍2

Обсуждение

Разве dir.name() не возвращает имя каталога и путь?, @ocrdu

К сожалению, он возвращает только имя, @Marco Giacomin

Тогда, вероятно, единственный способ — сохранить список каталогов, которые вы прошли при переходе к этому файлу или при построении структуры каталогов из корня. Может быть и другой способ, но я недостаточно хорошо знаю SD-библиотеку., @ocrdu


1 ответ


-1

Я не думаю, что существует встроенная функция, возвращающая родителя, но вы могли бы это сделать:

FS &file_system = SD; // выбираем любую файловую систему, которую вы используете

File get_parent(File dir) {
  String dirPath = dir.path();
  int lastSlashIndex = dirPath.lastIndexOf('/');
  if (lastSlashIndex != -1) {
    String parentDirPath = dirPath.substring(0, lastSlashIndex);
    File parentDir = file_system.open(parentDirPath.c_str());
    return parentDir;
  }
  return File();
}
,

но в библиотеке SD Arduino нет функции path. (и нет типа FS), @Juraj

У меня под рукой есть только esp32-S3, а path() доступен в framework-arduinoespressif32 -> FS.h, я не знаю ситуации для других платформ/архитектур., @Mikael Tulldahl