Я буду вважати, що ви використовуєте тут файлову систему FAT / FAT32, оскільки ви згадуєте про це SD-карту. NTFS та exFAT поводяться аналогічно щодо одиниць розподілу. Інші файлові системи можуть бути різними, але вони все одно не підтримуються в Windows.
Якщо у вас багато невеликих файлів, це, безумовно, можливо. Врахуйте це:
Ок, зараз мінімальний простір займає 50 000 * 32 000 = 1,6 ГБ (використовуючи префікси SI, а не двійкові, щоб спростити математику). Простір, який кожен файл займає на диску, завжди є кратним розміру одиниці розподілу - і тут ми припускаємо, що кожен файл насправді достатньо малий, щоб вміститися в одному блоці, з деяким (витраченим) простором.
Якщо кожен файл в середньому становив 2 кБ, ви отримували б приблизно 100 МБ, але ви також витрачаєте в середньому 15 разів (30 кБ на файл) внаслідок розміру одиниці розподілу.
Поглиблене пояснення
Чому це відбувається? Що ж, файлова система FAT32 повинна відслідковувати, де зберігається кожен файл. Якби вести список кожного байта, таблиця (як адресна книга) зростала б із тією ж швидкістю, що й дані - і витрачала б багато місця. Тому вони використовують "розподільні одиниці", також відомі як "розмір кластера". Об'єм розділений на ці одиниці розподілу, і що стосується файлової системи, то їх не можна розділити - це найменші блоки, на які він може звертатися. Так само, як у вас номер будинку, але вашому пошталью не важливо, скільки у вас є спалень або хто проживає в них.
То що буде, якщо у вас дуже маленький файл? Що ж, файлова система не хвилює, якщо файл становить 0 кБ, 2 кБ або навіть 15 кБ, це дасть йому найменше місця - в прикладі вище, це 32 кБ. Ваш файл використовує лише невелику кількість цього простору, а решта в основному витрачається даремно, але все-таки належить до файлу - так само, як спальня, яку ви залишаєте незайнятою.
Чому існують різні розміри розподільної одиниці? Ну, це стає компромісом між великим столом (адресною книгою, наприклад, говорять, що Джон володіє будинком на 123 Fake Street, 124 Fake Street, 666 Satan Lane тощо), або більше витраченого місця в кожній одиниці (будинку). Якщо у вас є більші файли, є більш доцільним використовувати більші одиниці розподілу, оскільки файл не отримує новий блок (будинок), поки всі інші не заповняться. Якщо у вас багато невеликих файлів, то ви все одно матимете велику таблицю (адресну книгу), і це може також дати їм невеликі одиниці (будинки).
Великі одиниці розподілу, як правило, витратять багато місця, якщо у вас багато невеликих файлів. Зазвичай не є вагомою причиною для загального використання вище 4 кБ.
Фрагментація?
Що стосується фрагментації, то фрагментація не повинна витрачати місця таким чином. Великі файли можуть бути фрагментовані, тобто розділені на кілька розподільних одиниць, але кожну одиницю слід заповнити до початку наступного. Відморожування може заощадити небагато місця в таблицях розподілу, але це не ваша конкретна проблема.
Можливі рішення
Як запропонував gladiator2345 , на даний момент ваші єдині реальні варіанти - жити з ним або переформатувати з меншими одиницями розподілу.
Ваша картка може бути відформатована у FAT16, яка має менший ліміт розміру таблиці, а тому потребує набагато більших розмірів одиниць розподілу для вирішення більшого обсягу (з верхньою межею 2 ГБ з 32 кБ). Джерело люб’язно надано Браяму . Якщо це так, ви все одно можете мати можливість безпечно форматувати FAT32.