Presumo che tu stia utilizzando il file system FAT / FAT32 qui, poiché dici che si tratta di una scheda SD. NTFS ed exFAT si comportano in modo simile per quanto riguarda le unità di allocazione. Altri filesystem potrebbero essere diversi, ma non sono comunque supportati su Windows.
Se hai molti file di piccole dimensioni, questo è certamente possibile. Considera questo:
Ok, ora lo spazio minimo richiesto è 50.000 * 32.000 = 1,6 GB (usando prefissi SI, non binari, per semplificare la matematica). Lo spazio che ogni file occupa sul disco è sempre un multiplo della dimensione dell'unità di allocazione - e qui assumiamo che ogni file sia effettivamente abbastanza piccolo da adattarsi all'interno di una singola unità, con uno spazio (sprecato) rimasto.
Se ogni file avesse una media di 2 kB, otterresti circa 100 MB in totale, ma stai sprecando in media 15 volte (30 kB per file) a causa delle dimensioni dell'unità di allocazione.
Spiegazione approfondita
Perché succede? Bene, il filesystem FAT32 deve tenere traccia di dove è archiviato ogni file. Se dovesse mantenere un elenco di ogni singolo byte, la tabella (come una rubrica) crescerebbe alla stessa velocità dei dati e sprecherebbe molto spazio. Quindi quello che fanno è usare le "unità di allocazione", note anche come "dimensione del cluster". Il volume è diviso in queste unità di allocazione e, per quanto riguarda il filesystem, non possono essere suddivisi: questi sono i blocchi più piccoli che può affrontare. Proprio come se tu avessi un numero civico, ma al tuo postino non importa quante camere hai o chi ci abita.
Quindi cosa succede se hai un file molto piccolo? Bene, al filesystem non importa se il file è 0 kB, 2 kB o anche 15 kB, gli darà il minor spazio possibile - nell'esempio sopra, è 32 kB. Il tuo file utilizza solo una piccola quantità di questo spazio e il resto è sostanzialmente sprecato, ma appartiene ancora al file, proprio come una camera da letto che lasci vuota.
Perché esistono diverse dimensioni delle unità di allocazione? Bene, diventa un compromesso tra avere un tavolo più grande (rubrica, ad esempio dicendo che John possiede una casa in 123 Fake Street, 124 Fake Street, 666 Satan Lane, ecc.) O più spazio sprecato in ogni unità (casa). Se hai file più grandi, ha più senso usare unità di allocazione più grandi, perché un file non ottiene una nuova unità (casa) fino a quando tutti gli altri non vengono riempiti. Se hai molti file piccoli, beh, avrai comunque un grande tavolo (rubrica), quindi potresti anche dare loro piccole unità (case).
Le unità di allocazione di grandi dimensioni, come regola generale, sprecheranno molto spazio se si dispone di molti file di piccole dimensioni. Di solito non c'è un buon motivo per andare oltre i 4 kB per uso generale.
La frammentazione?
Per quanto riguarda la frammentazione, la frammentazione non dovrebbe sprecare spazio in questo modo. I file di grandi dimensioni possono essere frammentati, ovvero suddivisi, in più unità di allocazione, ma ogni unità deve essere riempita prima di iniziare quella successiva. La deframmentazione potrebbe risparmiare un po 'di spazio nelle tabelle di allocazione, ma questo non è il tuo problema specifico.
Possibili soluzioni
Come suggerito da gladiator2345 , le uniche opzioni reali a questo punto sono convivere con esso o riformattare con unità di allocazione più piccole.
La tua scheda potrebbe essere formattata in FAT16, che ha un limite più piccolo per le dimensioni del tavolo e quindi richiede unità di allocazione molto più grandi al fine di affrontare un volume maggiore (con un limite superiore di 2 GB con unità di allocazione da 32 kB). Fonte per gentile concessione di Braiam . In tal caso, dovresti comunque essere in grado di formattare in modo sicuro come FAT32.