У меня есть проект, написанный для устройств Android. Он генерирует большое количество файлов каждый день. Это все текстовые файлы и изображения. Приложение использует базу данных для ссылки на эти файлы.
Приложение должно очистить эти файлы после небольшого использования (возможно, через несколько дней), но этот процесс может работать или не работать. Это не предмет этого вопроса.
Из-за исторического происшествия организация файлов несколько наивна: все находится в одном каталоге; каталог .hidden
, содержащий нулевой байт .nomedia
файл для предотвращения его индексации MediaScanner.
Сегодня я вижу сообщение об ошибке:
java.io.IOException: Cannot create: /sdcard/.hidden/file-4200.html
at java.io.File.createNewFile(File.java:1263)
Что касается SDCard, я вижу, что у нее достаточно места для хранения, но считая
$ cd /Volumes/NO_NAME/.hidden
$ ls | wc -w
9058
Удаление ряда файлов, похоже, позволило создать файл на сегодняшний день.
К сожалению, я не пытался touch
создать новый файл, чтобы попытаться воспроизвести ошибку в командной строке; Я также удалил несколько сотен файлов, а не несколько.
Тем не менее, мой вопрос:
- Существуют ли жесткие ограничения на размер файла или количество файлов в каталоге?
- Я даже на правильном пути?
Nota Bene:
SD-карта как есть - то есть я не отформатировал ее, поэтому я предполагаю, что это будет формат FAT- *.
Формат FAT-32 имеет жесткие ограничения на размер файла 2 ГБ (намного выше размеров файлов, с которыми я имею дело) и ограничение количества файлов в корневом каталоге. Я определенно не пишу файлы в корневом каталоге.