SD.exists() - как отличить файл от каталога?
- Войдите на сайт для отправки комментариев
Втр, 27/04/2021 - 20:23
Столкнулся с неприятной особенностью работы SD.exists() - она не отличает файл от каталога с таким же именем. :( А мне это критично, ибо иногда (редко) бывают сбои и дуина создает вместо каталога файл с таким именем. И далее честно считает, что такой каталог уже есть.
Нет мыслей, как отличить одно от другого? Гугл навскидку не помог.
https://www.if.ufrj.br/~pef/producao_academica/artigos/audiotermometro/a...
А гугель прям молчит ?
Попробуй проверять ошибку open().
А вообще, конечно, нужно искоренять сбои, а не пытаться работать вокруг них.
А гугель прям молчит ?
Это SdFat, а не SD. Поменять библиотеку конечно можно, но переписать придется не только это тогда. :)
Попробуй проверять ошибку open().
А вообще, конечно, нужно искоренять сбои, а не пытаться работать вокруг них.
Ошибку open я разумеется проверяю и отлавливаю, но это не отменяет. А касательно сбоев - они всегда возможны. У меня нет идей, с чем они могут быть связаны. Бывают редко, но бывают. Зависеть может например от производителя карт. Исключить их совсем в НЕ сферическом мире в вакууме невозможно. А значит, надо отлавливать. :)
Попробуй проверять ошибку open().
Нет там никакой ошибки. Директория тоже вполне открывается.
Чечако,
откройте файл и, если откроется, то спросите у получившегося объекта File директория он или нет (для это там есть метод isDirectory() )
Нет там никакой ошибки. Директория тоже вполне открывается.
Чечако,
откройте файл и, если откроется, то спросите у получившегося объекта File директория он или нет (для это там есть метод isDirectory() )
Я сейчас отлавливаю при попытке создать файл в этой директории, он понятно что не создается, если вместо нее файл. А вот про isDirectory забыл, спасибо! При этом сам его использую в другом месте. :)
Это SdFat, а не SD. Поменять библиотеку конечно можно, но переписать придется не только это тогда. :)
Даааа... Это сильно меняет дело. isDirectory() и isFile() это ооочень редкие функции присущи исключительно FAT. :)
Ты хоть ссыль то мою открывал ?
Даааа... Это сильно меняет дело. isDirectory() и isFile() это ооочень редкие функции присущи исключительно FAT. :)
Ты хоть ссыль то мою открывал ?
Виноват, ага. Про isDirectory мне уже напомнили. И я у себя даже использование нашел уже. :) Когда проект ведется годами и занимает сотни килобайт кода, сложно все помнить, к сожалению. :( А в тот момент увидел sdFat, и среагировал на это. :)