Arduino:
Проверка существования директории
Как это делать:
Работа с директориями на Arduino часто включает использование библиотеки SD для хранения данных на карте SD. Сначала убедитесь, что ваш Arduino правильно подключен к модулю карты SD. Затем вы используете функцию SD.exists()
для проверки существования директории. Вот короткий пример:
#include <SPI.h>
#include <SD.h>
void setup() {
Serial.begin(9600);
while (!Serial) {
; // ожидание подключения к последовательному порту. Необходимо только для нативного USB-порта
}
if (!SD.begin(4)) { // Обязательно используйте правильный пин выбора чипа
Serial.println("Initialization failed!");
return;
}
if (SD.exists("/example")) {
Serial.println("/example директория существует.");
} else {
Serial.println("/example директория не существует.");
}
}
void loop() {
// Здесь нечего делать
}
Пример вывода, когда директория существует:
/example директория существует.
И когда ее нет:
/example директория не существует.
Не забудьте заменить /example
на фактический путь, который вы хотите проверить.
Подробный анализ
Еще недавно проверка существования директории не всегда была прямолинейной. Системы имели различные команды. В случае с Arduino библиотека SD сделала это последовательно, заимствуя концепции из стандартных практик программирования.
Что касается альтернатив, если вы работаете с не-SD хранилищем или нуждаетесь в большем контроле, другие библиотеки, такие как SdFat, предоставляют аналогичные функции с дополнительными возможностями. Некоторые продвинутые реализации могут взаимодействовать с файловыми системами более непосредственно, но для большинства пользователей SD.exists() достаточно.
Проверка директории включает в себя запрос библиотекой у файловой системы информации о специальной файловой записи, которая представляет директорию. Если она есть, отлично. Если нет, вы получите false. Библиотека SD управляет низкоуровневой коммуникацией между вашим Arduino и файловой системой носителя, абстрагируя грубые детали — так что вы получаете необходимую информацию без хлопот.
См. также
- Справочник по библиотеке SD Arduino: https://www.arduino.cc/en/Reference/SD
- Библиотека SdFat для более надежного взаимодействия с картой SD: https://github.com/greiman/SdFat