Подсчет числа файлов на карте SD
- Войдите на сайт для отправки комментариев
Втр, 09/05/2017 - 19:15
Разбираю пример из библиотеки SD listfiles, чтобы написать свою функцию, которая подсчитывает число файлов на карте (без рекурсии, т.е. вложенных папок нет) ... вопрос, что значит:
File _root = SD.open("/");
Разве обратный слэш может быть именем файла?
Может быть именем каталога(директории).
Вот здесь http://wikihandbk.com/wiki/Arduino:Библиотеки/SD/Класс_SD/open() пишут :
Синтаксис
Параметры
Хорошо, значит _root - мы открыли директорию? И как теперь подсчитать число файлов? У меня что-то ноль все время возвращает:
А внутри цикла не должно быть тоже _entry = _root.openNextFile();
вместо _entry.openNextFile();
А внутри цикла не должно быть тоже _entry = _root.openNextFile();
вместо _entry.openNextFile();
Если заменить, как вы говорите, то цикл бесконечен ...
Взгляните на http://wikihandbk.com/wiki/Arduino:Примеры/List_Files - даже с рекурсией (с подкаталогами)
Взгляните на http://wikihandbk.com/wiki/Arduino:Примеры/List_Files - даже с рекурсией (с подкаталогами)
Ссылку, которую вы дали, в точности повторяет пример из библиотеки SD, который у меня вначале не работал ... после танцев с бубнами, выяснилось, что проблема в моем коде, я исправил и пример заработал, но есть одно маленькое но ... запуск рутины void printDirectory(File dir, int numTabs) из примера я запускаю не в setup, а в loop, но она упорно возвращает результат числа файлов только один раз, пока не пойму, в чем дело
Потому что root.close(); забыли, после чего можно снова сделать .open() и считать файлы.
Потому что root.close(); забыли, после чего можно снова сделать .open() и считать файлы.
Сделал я открытие и закрытие, но увы ... функция вызывается в loop и правильное значение возвращает только раз, затем возвращает 0
Вы должны переходить на первый файл в директории. Вот этой функцией rewindDirectory(). Там где выход из while там и эта функция.
Выход это Break;
polkitavr - обращайте внимание на даты сообщений, на которые отвечаете