Проекты

Проблемы доступа

Столкнулся с тем, что на SD-карту невозможно записать в корневую директорию более определенного количества мелких файлов. Если в несколько папок — то записывается столько, сколько позволяет объем карты. Если в корень — в моем случае 380 мб или 115 файлов по 2-3 мб как на гигабайтную, так и на двухгигабайтную карточку, потом выдает ошибку доступа. На разных карточках и кардридерах, на разных компах с разными версиями Windows.

2014-10-22-10.43.54

Это какое-то принципиальное ограничение винды, о котором я не знал, или ограничение FAT32, или просто звезды таким образом сошлись?

7 комментариев к записи Проблемы доступа

  1. ziv 22.10.2014 в 12:02 #

    MS утверждает, что у FAT32 таких ограничений нет. А вот у FAT16 есть, у вас точно не она?

    technet.microsoft.com/en- ...ry/cc940351.aspx

    • Павел Иевлев 22.10.2014 в 12:24 #

      Видимо как раз она

  2. Немецкий Немец 22.10.2014 в 21:29 #

    Это ограничение файловой системы на количество файлов в корне и это система FAT32 (не exFat32)

  3. Александр 23.10.2014 в 9:55 #

    Это ограничение файловых систем FAT, место под корневую директорию резервируется при форматировании. У линуксовой mkdosfs есть ключ -r, с помощью которого можно задать размер, может и под винду есть что-то подобное.

    Размер задаётся в «досовских» «коротких» именах, вполне возможно, что укорачивание «длинных» имён позволит записать больше файлов.

    • MadRat 27.10.2014 в 22:48 #

      Неа. Длинно-ли коротко-ли размер записи четко лимитирован со всеми датами и флагами. Кстати в этом кроется ответ на загадку всех фото- и видеодивайсов, создающих под свое файло отдельные папки в корне. В сабдиры пиши-не хочу т.к. сабдир — тот-же файл, только с дировым флагом.

      • Александр 28.10.2014 в 0:10 #

        Да, размер записи лимитирован, 32 байта, имя формата 8.3 занимает одну такую запись. Но «длинные» имена хранятся особым способом в тех же записях, по-моему по 13 символов в одной 32-байтной записи. То есть имя длиной 60 символов займёт 6 записей (5 для длинного имени и 1 для короткого, для совместимости с системами, не поддерживающими длинные имена), а имя длиной 20 символов займёт только 3 записи и таких файлов в тот же объём, зарезервированный для корневой директории, поместится в 2 раза больше. Теоретически.

        • MadRat 28.10.2014 в 11:10 #

          А, понял о чем Вы ))) Пардон, чего-то подумалось, что Вы рекомендуете сокращать занятость применением имен длинной например 3 символа вместо 8ми((( Еще раз миль пардон.